home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1995-10-30 | 15.8 KB | [TEXT/MMCC] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
1%
| dexvert
| MS-DOS Code Page Info (other/dosCodePage)
| ext
| Unsupported |
1%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Mon Oct 30 16:48:53 1995, modified Mon Oct 30 16:48:53 1995, creator 'MMCC', type ASCII, 15401 bytes "DBElement.cp" , at 0x3ca9 410 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| dearkID
| deark: macbinary
| default
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MMCC] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0c 44 42 45 6c 65 6d | 65 6e 74 2e 63 70 00 00 |..DBElem|ent.cp..|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 4d 43 | 43 01 00 00 00 00 00 00 |.TEXTMMC|C.......|
|00000050| 00 00 00 00 00 3c 29 00 | 00 01 9a ac ba f8 c5 ac |.....<).|........|
|00000060| ba f8 c5 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 d3 78 00 00 |........|.....x..|
|00000080| 2f 2f 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |//======|========|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000d0| 3d 3d 0d 2f 2f 20 47 72 | 65 67 20 41 6e 64 65 72 |==.// Gr|eg Ander|
|000000e0| 73 6f 6e 0d 2f 2f 20 64 | 62 2b 0d 2f 2f 0d 2f 2f |son.// d|b+.//.//|
|000000f0| 20 43 75 72 73 6f 72 20 | 74 6f 20 61 6e 20 6f 62 | Cursor |to an ob|
|00000100| 6a 65 63 74 20 72 65 63 | 6f 72 64 0d 2f 2f 20 31 |ject rec|ord.// 1|
|00000110| 36 20 4d 61 79 20 31 39 | 39 34 0d 2f 2f 20 33 31 |6 May 19|94.// 31|
|00000120| 20 44 65 63 20 31 39 39 | 34 0d 2f 2f 3d 3d 3d 3d | Dec 199|4.//====|
|00000130| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000140| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000150| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000160| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000170| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 0d 0d 23 69 |========|====..#i|
|00000180| 6e 63 6c 75 64 65 20 22 | 44 42 45 6c 65 6d 65 6e |nclude "|DBElemen|
|00000190| 74 2e 68 22 0d 0d 23 69 | 6e 63 6c 75 64 65 20 22 |t.h"..#i|nclude "|
|000001a0| 44 42 50 72 6f 70 65 72 | 74 79 2e 68 22 0d 23 69 |DBProper|ty.h".#i|
|000001b0| 6e 63 6c 75 64 65 20 22 | 54 72 61 6e 73 61 63 74 |nclude "|Transact|
|000001c0| 69 6f 6e 2e 68 22 0d 0d | 23 69 6e 63 6c 75 64 65 |ion.h"..|#include|
|000001d0| 20 22 44 61 74 61 62 61 | 73 65 44 6f 63 75 6d 65 | "Databa|seDocume|
|000001e0| 6e 74 2e 68 22 0d 23 69 | 6e 63 6c 75 64 65 20 22 |nt.h".#i|nclude "|
|000001f0| 45 78 63 65 70 74 69 6f | 6e 73 2e 68 22 0d 0d 23 |Exceptio|ns.h"..#|
|00000200| 64 65 66 69 6e 65 20 49 | 4e 48 45 52 49 54 45 44 |define I|NHERITED|
|00000210| 20 54 44 42 52 65 63 6f | 72 64 0d 0d 2f 2f 2d 2d | TDBReco|rd..//--|
|00000220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 2f |--------|------./|
|00000270| 2f 20 54 44 42 45 6c 65 | 6d 65 6e 74 3a 3a 7e 54 |/ TDBEle|ment::~T|
|00000280| 44 42 45 6c 65 6d 65 6e | 74 0d 2f 2f 2d 2d 2d 2d |DBElemen|t.//----|
|00000290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 54 44 42 |--------|----.TDB|
|000002e0| 45 6c 65 6d 65 6e 74 3a | 3a 7e 54 44 42 45 6c 65 |Element:|:~TDBEle|
|000002f0| 6d 65 6e 74 28 29 0d 7b | 0d 7d 20 2f 2f 20 54 44 |ment().{|.} // TD|
|00000300| 42 45 6c 65 6d 65 6e 74 | 3a 3a 7e 54 44 42 45 6c |BElement|::~TDBEl|
|00000310| 65 6d 65 6e 74 0d 0d 2f | 2f 2d 2d 2d 2d 2d 2d 2d |ement../|/-------|
|00000320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000340| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000350| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 20 54 44 42 |--------|-.// TDB|
|00000370| 45 6c 65 6d 65 6e 74 3a | 3a 43 6f 6d 70 61 72 65 |Element:|:Compare|
|00000380| 53 6f 72 74 4b 65 79 73 | 0d 2f 2f 2d 2d 2d 2d 2d |SortKeys|.//-----|
|00000390| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 43 6f 6d 70 |--------|---.Comp|
|000003e0| 61 72 65 45 6e 75 6d 65 | 72 61 74 69 6f 6e 20 54 |areEnume|ration T|
|000003f0| 44 42 45 6c 65 6d 65 6e | 74 3a 3a 43 6f 6d 70 61 |DBElemen|t::Compa|
|00000400| 72 65 53 6f 72 74 4b 65 | 79 73 28 54 54 72 61 6e |reSortKe|ys(TTran|
|00000410| 73 61 63 74 69 6f 6e 2a | 20 74 2c 20 41 43 6f 6e |saction*| t, ACon|
|00000420| 73 74 3c 54 44 42 52 65 | 63 6f 72 64 3e 20 73 65 |st<TDBRe|cord> se|
|00000430| 63 6f 6e 64 4f 62 6a 65 | 63 74 29 20 63 6f 6e 73 |condObje|ct) cons|
|00000440| 74 0d 7b 0d 09 43 6f 6d | 70 61 72 65 45 6e 75 6d |t.{..Com|pareEnum|
|00000450| 65 72 61 74 69 6f 6e 20 | 74 65 73 74 52 65 73 75 |eration |testResu|
|00000460| 6c 74 3b 0d 0d 09 41 43 | 6f 6e 73 74 3c 54 44 42 |lt;...AC|onst<TDB|
|00000470| 50 72 6f 70 65 72 74 79 | 3e 20 6e 61 6d 65 43 75 |Property|> nameCu|
|00000480| 72 73 6f 72 20 3d 20 74 | 68 69 73 2d 3e 44 42 45 |rsor = t|his->DBE|
|00000490| 6c 65 6d 65 6e 74 52 65 | 63 6f 72 64 28 29 2d 3e |lementRe|cord()->|
|000004a0| 47 65 74 50 72 6f 70 65 | 72 74 79 52 65 63 6f 72 |GetPrope|rtyRecor|
|000004b0| 64 28 74 2c 20 70 4e 61 | 6d 65 29 3b 0d 09 41 43 |d(t, pNa|me);..AC|
|000004c0| 6f 6e 73 74 3c 54 44 42 | 50 72 6f 70 65 72 74 79 |onst<TDB|Property|
|000004d0| 3e 20 73 65 63 6f 6e 64 | 4e 61 6d 65 20 3d 20 73 |> second|Name = s|
|000004e0| 65 63 6f 6e 64 4f 62 6a | 65 63 74 2d 3e 44 42 45 |econdObj|ect->DBE|
|000004f0| 6c 65 6d 65 6e 74 43 75 | 72 73 6f 72 28 29 2d 3e |lementCu|rsor()->|
|00000500| 47 65 74 50 72 6f 70 65 | 72 74 79 52 65 63 6f 72 |GetPrope|rtyRecor|
|00000510| 64 28 74 2c 20 70 4e 61 | 6d 65 29 3b 0d 09 69 66 |d(t, pNa|me);..if|
|00000520| 28 6e 61 6d 65 43 75 72 | 73 6f 72 2e 45 78 69 73 |(nameCur|sor.Exis|
|00000530| 74 73 28 29 20 26 26 20 | 73 65 63 6f 6e 64 4e 61 |ts() && |secondNa|
|00000540| 6d 65 2e 45 78 69 73 74 | 73 28 29 29 0d 09 7b 0d |me.Exist|s())..{.|
|00000550| 09 09 74 65 73 74 52 65 | 73 75 6c 74 20 3d 20 6e |..testRe|sult = n|
|00000560| 61 6d 65 43 75 72 73 6f | 72 2d 3e 43 6f 6d 70 61 |ameCurso|r->Compa|
|00000570| 72 65 28 74 2c 20 73 65 | 63 6f 6e 64 4e 61 6d 65 |re(t, se|condName|
|00000580| 29 3b 0d 09 7d 0d 09 2f | 2f 0d 09 2f 2f 20 49 66 |);..}../|/..// If|
|00000590| 20 65 69 74 68 65 72 20 | 69 74 65 6d 20 69 73 20 | either |item is |
|000005a0| 65 6d 70 74 79 2c 20 74 | 68 65 6e 20 74 68 65 20 |empty, t|hen the |
|000005b0| 6c 61 72 67 65 72 20 69 | 73 20 74 68 65 20 6f 6e |larger i|s the on|
|000005c0| 65 0d 09 2f 2f 20 74 68 | 61 74 20 68 61 73 20 64 |e..// th|at has d|
|000005d0| 61 74 61 2e 20 20 54 68 | 65 79 20 61 72 65 20 65 |ata. Th|ey are e|
|000005e0| 71 75 61 6c 20 69 66 20 | 6e 65 69 74 68 65 72 20 |qual if |neither |
|000005f0| 68 61 73 20 64 61 74 61 | 2e 0d 09 2f 2f 0d 09 65 |has data|...//..e|
|00000600| 6c 73 65 0d 09 09 74 65 | 73 74 52 65 73 75 6c 74 |lse...te|stResult|
|00000610| 20 3d 20 28 43 6f 6d 70 | 61 72 65 45 6e 75 6d 65 | = (Comp|areEnume|
|00000620| 72 61 74 69 6f 6e 29 28 | 73 65 63 6f 6e 64 4e 61 |ration)(|secondNa|
|00000630| 6d 65 2e 45 78 69 73 74 | 73 28 29 20 2d 20 6e 61 |me.Exist|s() - na|
|00000640| 6d 65 43 75 72 73 6f 72 | 2e 45 78 69 73 74 73 28 |meCursor|.Exists(|
|00000650| 29 29 3b 0d 09 09 0d 09 | 72 65 74 75 72 6e 20 74 |));.....|return t|
|00000660| 65 73 74 52 65 73 75 6c | 74 3b 0d 7d 20 2f 2f 20 |estResul|t;.} // |
|00000670| 54 44 42 45 6c 65 6d 65 | 6e 74 3a 3a 43 6f 6d 70 |TDBEleme|nt::Comp|
|00000680| 61 72 65 53 6f 72 74 4b | 65 79 73 0d 0d 2f 2f 2d |areSortK|eys..//-|
|00000690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|000006e0| 2f 2f 20 54 44 42 45 6c | 65 6d 65 6e 74 3a 3a 52 |// TDBEl|ement::R|
|000006f0| 65 63 6f 72 64 43 61 6e | 48 61 76 65 45 6c 65 6d |ecordCan|HaveElem|
|00000700| 65 6e 74 73 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ents.//-|--------|
|00000710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000730| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000750| 2d 2d 2d 2d 2d 2d 2d 0d | 42 6f 6f 6c 65 61 6e 20 |-------.|Boolean |
|00000760| 54 44 42 45 6c 65 6d 65 | 6e 74 3a 3a 52 65 63 6f |TDBEleme|nt::Reco|
|00000770| 72 64 43 61 6e 48 61 76 | 65 45 6c 65 6d 65 6e 74 |rdCanHav|eElement|
|00000780| 73 28 54 54 72 61 6e 73 | 61 63 74 69 6f 6e 2a 29 |s(TTrans|action*)|
|00000790| 20 63 6f 6e 73 74 0d 7b | 0d 09 72 65 74 75 72 6e | const.{|..return|
|000007a0| 20 74 72 75 65 3b 0d 7d | 20 2f 2f 20 54 44 42 45 | true;.}| // TDBE|
|000007b0| 6c 65 6d 65 6e 74 3a 3a | 52 65 63 6f 72 64 43 61 |lement::|RecordCa|
|000007c0| 6e 48 61 76 65 45 6c 65 | 6d 65 6e 74 73 0d 0d 2f |nHaveEle|ments../|
|000007d0| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|000007e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000007f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000820| 2d 0d 2f 2f 20 54 44 42 | 45 6c 65 6d 65 6e 74 3a |-.// TDB|Element:|
|00000830| 3a 52 65 63 6f 72 64 43 | 61 6e 48 61 76 65 50 72 |:RecordC|anHavePr|
|00000840| 6f 70 65 72 74 69 65 73 | 0d 2f 2f 2d 2d 2d 2d 2d |operties|.//-----|
|00000850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000890| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 42 6f 6f 6c |--------|---.Bool|
|000008a0| 65 61 6e 20 54 44 42 45 | 6c 65 6d 65 6e 74 3a 3a |ean TDBE|lement::|
|000008b0| 52 65 63 6f 72 64 43 61 | 6e 48 61 76 65 50 72 6f |RecordCa|nHavePro|
|000008c0| 70 65 72 74 69 65 73 28 | 54 54 72 61 6e 73 61 63 |perties(|TTransac|
|000008d0| 74 69 6f 6e 2a 29 20 63 | 6f 6e 73 74 0d 7b 0d 09 |tion*) c|onst.{..|
|000008e0| 72 65 74 75 72 6e 20 74 | 72 75 65 3b 0d 7d 20 2f |return t|rue;.} /|
|000008f0| 2f 20 54 44 42 45 6c 65 | 6d 65 6e 74 3a 3a 52 65 |/ TDBEle|ment::Re|
|00000900| 63 6f 72 64 43 61 6e 48 | 61 76 65 50 72 6f 70 65 |cordCanH|avePrope|
|00000910| 72 74 69 65 73 0d 0d 2f | 2f 2d 2d 2d 2d 2d 2d 2d |rties../|/-------|
|00000920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000950| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000960| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 20 54 44 42 |--------|-.// TDB|
|00000970| 45 6c 65 6d 65 6e 74 3a | 3a 47 65 74 50 72 6f 70 |Element:|:GetProp|
|00000980| 65 72 74 79 52 65 63 6f | 72 64 0d 2f 2f 2d 2d 2d |ertyReco|rd.//---|
|00000990| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 41 43 |--------|-----.AC|
|000009e0| 6f 6e 73 74 3c 54 44 42 | 50 72 6f 70 65 72 74 79 |onst<TDB|Property|
|000009f0| 3e 20 54 44 42 45 6c 65 | 6d 65 6e 74 3a 3a 47 65 |> TDBEle|ment::Ge|
|00000a00| 74 50 72 6f 70 65 72 74 | 79 52 65 63 6f 72 64 28 |tPropert|yRecord(|
|00000a10| 54 54 72 61 6e 73 61 63 | 74 69 6f 6e 2a 20 74 2c |TTransac|tion* t,|
|00000a20| 20 6c 6f 6e 67 20 70 72 | 6f 70 65 72 74 79 49 44 | long pr|opertyID|
|00000a30| 29 20 63 6f 6e 73 74 0d | 7b 0d 09 54 44 61 74 61 |) const.|{..TData|
|00000a40| 52 65 63 6f 72 64 43 6f | 6d 70 61 72 69 73 6f 6e |RecordCo|mparison|
|00000a50| 4f 62 6a 65 63 74 20 73 | 65 61 72 63 68 4f 62 6a |Object s|earchObj|
|00000a60| 65 63 74 28 70 72 6f 70 | 65 72 74 79 49 44 29 3b |ect(prop|ertyID);|
|00000a70| 0d 09 41 43 6f 6e 73 74 | 3c 54 44 42 50 72 6f 70 |..AConst|<TDBProp|
|00000a80| 65 72 74 79 3e 20 74 68 | 65 50 72 6f 70 65 72 74 |erty> th|ePropert|
|00000a90| 79 3b 0d 09 0d 09 41 43 | 6f 6e 73 74 3c 54 44 42 |y;....AC|onst<TDB|
|00000aa0| 50 72 6f 70 65 72 74 79 | 3e 20 74 6f 70 50 72 6f |Property|> topPro|
|00000ab0| 70 65 72 74 79 20 3d 20 | 74 68 69 73 2d 3e 50 72 |perty = |this->Pr|
|00000ac0| 6f 70 65 72 74 69 65 73 | 28 74 29 3b 0d 09 69 66 |operties|(t);..if|
|00000ad0| 28 74 6f 70 50 72 6f 70 | 65 72 74 79 2e 45 78 69 |(topProp|erty.Exi|
|00000ae0| 73 74 73 28 29 29 0d 09 | 7b 0d 09 09 2f 2f 0d 09 |sts())..|{...//..|
|00000af0| 09 2f 2f 20 57 65 20 63 | 61 6c 6c 20 27 46 69 6e |.// We c|all 'Fin|
|00000b00| 64 49 74 65 6d 49 6e 53 | 75 62 54 72 65 65 27 20 |dItemInS|ubTree' |
|00000b10| 69 6e 73 74 65 61 64 20 | 6f 66 20 27 46 69 6e 64 |instead |of 'Find|
|00000b20| 49 74 65 6d 49 6e 54 72 | 65 65 27 20 62 65 63 61 |ItemInTr|ee' beca|
|00000b30| 75 73 65 0d 09 09 2f 2f | 20 77 65 20 6b 6e 6f 77 |use...//| we know|
|00000b40| 20 77 65 27 72 65 20 61 | 6c 72 65 61 64 79 20 61 | we're a|lready a|
|00000b50| 74 20 74 68 65 20 74 6f | 70 20 6f 66 20 74 68 65 |t the to|p of the|
|00000b60| 20 70 72 6f 70 65 72 74 | 79 20 74 72 65 65 0d 09 | propert|y tree..|
|00000b70| 09 2f 2f 0d 09 09 41 43 | 6f 6e 73 74 3c 54 44 42 |.//...AC|onst<TDB|
|00000b80| 52 65 63 6f 72 64 3e 20 | 74 65 6d 70 50 72 6f 70 |Record> |tempProp|
|00000b90| 65 72 74 79 20 3d 20 74 | 6f 70 50 72 6f 70 65 72 |erty = t|opProper|
|00000ba0| 74 79 2d 3e 46 69 6e 64 | 49 74 65 6d 49 6e 53 75 |ty->Find|ItemInSu|
|00000bb0| 62 54 72 65 65 28 74 2c | 20 26 73 65 61 72 63 68 |bTree(t,| &search|
|00000bc0| 4f 62 6a 65 63 74 29 3b | 0d 09 09 69 66 28 74 65 |Object);|...if(te|
|00000bd0| 6d 70 50 72 6f 70 65 72 | 74 79 2e 45 78 69 73 74 |mpProper|ty.Exist|
|00000be0| 73 28 29 29 0d 09 09 09 | 74 68 65 50 72 6f 70 65 |s())....|thePrope|
|00000bf0| 72 74 79 20 3d 20 74 65 | 6d 70 50 72 6f 70 65 72 |rty = te|mpProper|
|00000c00| 74 79 2d 3e 44 42 50 72 | 6f 70 65 72 74 79 43 75 |ty->DBPr|opertyCu|
|00000c10| 72 73 6f 72 28 29 3b 0d | 09 7d 0d 09 09 0d 09 72 |rsor();.|.}.....r|
|00000c20| 65 74 75 72 6e 20 74 68 | 65 50 72 6f 70 65 72 74 |eturn th|ePropert|
|00000c30| 79 3b 0d 7d 20 2f 2f 20 | 54 44 42 45 6c 65 6d 65 |y;.} // |TDBEleme|
|00000c40| 6e 74 3a 3a 47 65 74 50 | 72 6f 70 65 72 74 79 52 |nt::GetP|ropertyR|
|00000c50| 65 63 6f 72 64 0d 0d 2f | 2f 2d 2d 2d 2d 2d 2d 2d |ecord../|/-------|
|00000c60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ca0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 20 54 44 42 |--------|-.// TDB|
|00000cb0| 45 6c 65 6d 65 6e 74 3a | 3a 47 65 74 4e 61 6d 65 |Element:|:GetName|
|00000cc0| 64 45 6c 65 6d 65 6e 74 | 0d 2f 2f 2d 2d 2d 2d 2d |dElement|.//-----|
|00000cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000d10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 41 43 6f 6e |--------|---.ACon|
|00000d20| 73 74 3c 54 44 42 45 6c | 65 6d 65 6e 74 3e 20 54 |st<TDBEl|ement> T|
|00000d30| 44 42 45 6c 65 6d 65 6e | 74 3a 3a 47 65 74 4e 61 |DBElemen|t::GetNa|
|00000d40| 6d 65 64 45 6c 65 6d 65 | 6e 74 28 54 54 72 61 6e |medEleme|nt(TTran|
|00000d50| 73 61 63 74 69 6f 6e 2a | 20 74 2c 20 63 6f 6e 73 |saction*| t, cons|
|00000d60| 74 20 54 43 6f 6e 73 74 | 44 61 74 61 52 65 66 65 |t TConst|DataRefe|
|00000d70| 72 65 6e 63 65 26 20 6e | 61 6d 65 53 70 65 63 29 |rence& n|ameSpec)|
|00000d80| 20 63 6f 6e 73 74 0d 7b | 0d 09 54 4f 62 6a 65 63 | const.{|..TObjec|
|00000d90| 74 52 65 63 6f 72 64 43 | 6f 6d 70 61 72 69 73 6f |tRecordC|ompariso|
|00000da0| 6e 4f 62 6a 65 63 74 20 | 73 65 61 72 63 68 4f 62 |nObject |searchOb|
|00000db0| 6a 65 63 74 28 6e 61 6d | 65 53 70 65 63 29 3b 0d |ject(nam|eSpec);.|
|00000dc0| 09 41 43 6f 6e 73 74 3c | 54 44 42 45 6c 65 6d 65 |.AConst<|TDBEleme|
|00000dd0| 6e 74 3e 20 74 68 65 45 | 6c 65 6d 65 6e 74 3b 0d |nt> theE|lement;.|
|00000de0| 09 0d 09 41 43 6f 6e 73 | 74 3c 54 44 42 45 6c 65 |...ACons|t<TDBEle|
|00000df0| 6d 65 6e 74 3e 20 74 6f | 70 45 6c 65 6d 65 6e 74 |ment> to|pElement|
|00000e00| 20 3d 20 74 68 69 73 2d | 3e 45 6c 65 6d 65 6e 74 | = this-|>Element|
|00000e10| 73 28 74 29 3b 0d 09 69 | 66 28 74 6f 70 45 6c 65 |s(t);..i|f(topEle|
|00000e20| 6d 65 6e 74 2e 45 78 69 | 73 74 73 28 29 29 0d 09 |ment.Exi|sts())..|
|00000e30| 7b 0d 09 09 2f 2f 0d 09 | 09 2f 2f 20 57 65 20 63 |{...//..|.// We c|
|00000e40| 61 6c 6c 20 27 46 69 6e | 64 49 74 65 6d 49 6e 53 |all 'Fin|dItemInS|
|00000e50| 75 62 54 72 65 65 27 20 | 69 6e 73 74 65 61 64 20 |ubTree' |instead |
|00000e60| 6f 66 20 27 46 69 6e 64 | 49 74 65 6d 49 6e 54 72 |of 'Find|ItemInTr|
|00000e70| 65 65 27 20 62 65 63 61 | 75 73 65 0d 09 09 2f 2f |ee' beca|use...//|
|00000e80| 20 77 65 20 6b 6e 6f 77 | 20 77 65 27 72 65 20 61 | we know| we're a|
|00000e90| 6c 72 65 61 64 79 20 61 | 74 20 74 68 65 20 74 6f |lready a|t the to|
|00000ea0| 70 20 6f 66 20 74 68 65 | 20 65 6c 65 6d 65 6e 74 |p of the| element|
|00000eb0| 20 74 72 65 65 0d 09 09 | 2f 2f 0d 09 09 41 43 6f | tree...|//...ACo|
|00000ec0| 6e 73 74 3c 54 44 42 52 | 65 63 6f 72 64 3e 20 74 |nst<TDBR|ecord> t|
|00000ed0| 65 6d 70 45 6c 65 6d 65 | 6e 74 20 3d 20 74 6f 70 |empEleme|nt = top|
|00000ee0| 45 6c 65 6d 65 6e 74 2d | 3e 46 69 6e 64 49 74 65 |Element-|>FindIte|
|00000ef0| 6d 49 6e 53 75 62 54 72 | 65 65 28 74 2c 20 26 73 |mInSubTr|ee(t, &s|
|00000f00| 65 61 72 63 68 4f 62 6a | 65 63 74 29 3b 0d 09 09 |earchObj|ect);...|
|00000f10| 69 66 28 74 65 6d 70 45 | 6c 65 6d 65 6e 74 2e 45 |if(tempE|lement.E|
|00000f20| 78 69 73 74 73 28 29 29 | 0d 09 09 09 74 68 65 45 |xists())|....theE|
|00000f30| 6c 65 6d 65 6e 74 20 3d | 20 74 65 6d 70 45 6c 65 |lement =| tempEle|
|00000f40| 6d 65 6e 74 2d 3e 44 42 | 45 6c 65 6d 65 6e 74 43 |ment->DB|ElementC|
|00000f50| 75 72 73 6f 72 28 29 3b | 0d 09 7d 0d 09 0d 09 72 |ursor();|..}....r|
|00000f60| 65 74 75 72 6e 20 74 68 | 65 45 6c 65 6d 65 6e 74 |eturn th|eElement|
|00000f70| 3b 0d 7d 20 2f 2f 20 54 | 44 42 45 6c 65 6d 65 6e |;.} // T|DBElemen|
|00000f80| 74 3a 3a 47 65 74 4e 61 | 6d 65 64 45 6c 65 6d 65 |t::GetNa|medEleme|
|00000f90| 6e 74 0d 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |nt..//--|--------|
|00000fa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000fe0| 2d 2d 2d 2d 2d 2d 0d 2f | 2f 20 54 44 42 45 6c 65 |------./|/ TDBEle|
|00000ff0| 6d 65 6e 74 3a 3a 47 65 | 74 4c 6f 6e 67 77 6f 72 |ment::Ge|tLongwor|
|00001000| 64 50 72 6f 70 65 72 74 | 79 0d 2f 2f 2d 2d 2d 2d |dPropert|y.//----|
|00001010| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 6c 6f 6e |--------|----.lon|
|00001060| 67 20 54 44 42 45 6c 65 | 6d 65 6e 74 3a 3a 47 65 |g TDBEle|ment::Ge|
|00001070| 74 4c 6f 6e 67 77 6f 72 | 64 50 72 6f 70 65 72 74 |tLongwor|dPropert|
|00001080| 79 28 54 54 72 61 6e 73 | 61 63 74 69 6f 6e 2a 20 |y(TTrans|action* |
|00001090| 74 2c 20 6c 6f 6e 67 20 | 70 72 6f 70 65 72 74 79 |t, long |property|
|000010a0| 49 44 29 20 63 6f 6e 73 | 74 0d 7b 0d 09 41 43 6f |ID) cons|t.{..ACo|
|000010b0| 6e 73 74 3c 54 44 42 50 | 72 6f 70 65 72 74 79 3e |nst<TDBP|roperty>|
|000010c0| 20 64 61 74 61 43 75 72 | 73 6f 72 20 3d 20 74 68 | dataCur|sor = th|
|000010d0| 69 73 2d 3e 47 65 74 50 | 72 6f 70 65 72 74 79 52 |is->GetP|ropertyR|
|000010e0| 65 63 6f 72 64 28 74 2c | 20 70 72 6f 70 65 72 74 |ecord(t,| propert|
|000010f0| 79 49 44 29 3b 0d 09 6c | 6f 6e 67 20 72 65 73 75 |yID);..l|ong resu|
|00001100| 6c 74 20 3d 20 30 3b 0d | 09 69 66 28 64 61 74 61 |lt = 0;.|.if(data|
|00001110| 43 75 72 73 6f 72 2e 45 | 78 69 73 74 73 28 29 29 |Cursor.E|xists())|
|00001120| 0d 09 7b 0d 09 09 72 65 | 73 75 6c 74 20 3d 20 64 |..{...re|sult = d|
|00001130| 61 74 61 43 75 72 73 6f | 72 2d 3e 47 65 74 4c 6f |ataCurso|r->GetLo|
|00001140| 6e 67 44 61 74 61 28 74 | 29 3b 0d 09 7d 0d 09 2f |ngData(t|);..}../|
|00001150| 2f 20 a5 a5 a5 ca 66 61 | 69 6c 20 69 66 20 64 6f |/ ....fa|il if do|
|00001160| 65 73 20 6e 6f 74 20 65 | 78 69 73 74 0d 09 72 65 |es not e|xist..re|
|00001170| 74 75 72 6e 20 72 65 73 | 75 6c 74 3b 0d 7d 20 2f |turn res|ult;.} /|
|00001180| 2f 20 54 44 42 45 6c 65 | 6d 65 6e 74 3a 3a 47 65 |/ TDBEle|ment::Ge|
|00001190| 74 4c 6f 6e 67 77 6f 72 | 64 50 72 6f 70 65 72 74 |tLongwor|dPropert|
|000011a0| 79 0d 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |y..//---|--------|
|000011b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000011c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000011d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000011e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000011f0| 2d 2d 2d 2d 2d 0d 2f 2f | 20 54 44 42 45 6c 65 6d |-----.//| TDBElem|
|00001200| 65 6e 74 3a 3a 47 65 74 | 54 79 70 65 64 50 72 6f |ent::Get|TypedPro|
|00001210| 70 65 72 74 79 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |perty.//|--------|
|00001220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001260| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 76 6f 69 64 20 54 44 |--------|.void TD|
|00001270| 42 45 6c 65 6d 65 6e 74 | 3a 3a 47 65 74 54 79 70 |BElement|::GetTyp|
|00001280| 65 64 50 72 6f 70 65 72 | 74 79 28 54 54 72 61 6e |edProper|ty(TTran|
|00001290| 73 61 63 74 69 6f 6e 2a | 20 74 2c 20 6c 6f 6e 67 |saction*| t, long|
|000012a0| 20 70 72 6f 70 65 72 74 | 79 49 44 2c 20 54 55 70 | propert|yID, TUp|
|000012b0| 64 61 74 61 44 61 74 61 | 52 65 66 65 72 65 6e 63 |dataData|Referenc|
|000012c0| 65 26 20 64 61 74 61 29 | 20 63 6f 6e 73 74 0d 7b |e& data)| const.{|
|000012d0| 0d 09 41 43 6f 6e 73 74 | 3c 54 44 42 50 72 6f 70 |..AConst|<TDBProp|
|000012e0| 65 72 74 79 3e 20 64 61 | 74 61 43 75 72 73 6f 72 |erty> da|taCursor|
|000012f0| 20 3d 20 74 68 69 73 2d | 3e 47 65 74 50 72 6f 70 | = this-|>GetProp|
|00001300| 65 72 74 79 52 65 63 6f | 72 64 28 74 2c 20 70 72 |ertyReco|rd(t, pr|
|00001310| 6f 70 65 72 74 79 49 44 | 29 3b 0d 09 69 66 28 64 |opertyID|);..if(d|
|00001320| 61 74 61 43 75 72 73 6f | 72 2e 45 78 69 73 74 73 |ataCurso|r.Exists|
|00001330| 28 29 29 0d 09 7b 0d 09 | 09 64 61 74 61 43 75 72 |())..{..|.dataCur|
|00001340| 73 6f 72 2d 3e 47 65 74 | 54 79 70 65 64 44 61 74 |sor->Get|TypedDat|
|00001350| 61 28 74 2c 20 64 61 74 | 61 29 3b 0d 09 7d 0d 09 |a(t, dat|a);..}..|
|00001360| 2f 2f 20 a5 a5 a5 ca 66 | 61 69 6c 20 69 66 20 64 |// ....f|ail if d|
|00001370| 6f 65 73 20 6e 6f 74 20 | 65 78 69 73 74 0d 7d 20 |oes not |exist.} |
|00001380| 2f 2f 20 54 44 42 45 6c | 65 6d 65 6e 74 3a 3a 47 |// TDBEl|ement::G|
|00001390| 65 74 54 79 70 65 64 50 | 72 6f 70 65 72 74 79 0d |etTypedP|roperty.|
|000013a0| 0d 2f 2f 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.//-----|--------|
|000013b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013f0| 2d 2d 2d 0d 2f 2f 20 54 | 44 42 45 6c 65 6d 65 6e |---.// T|DBElemen|
|00001400| 74 3a 3a 56 65 72 69 66 | 79 0d 2f 2f 2d 2d 2d 2d |t::Verif|y.//----|
|00001410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001420| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001430| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001440| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001450| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 76 6f 69 |--------|----.voi|
|00001460| 64 20 54 44 42 45 6c 65 | 6d 65 6e 74 3a 3a 56 65 |d TDBEle|ment::Ve|
|00001470| 72 69 66 79 28 54 54 72 | 61 6e 73 61 63 74 69 6f |rify(TTr|ansactio|
|00001480| 6e 2a 20 74 2c 20 42 6f | 6f 6c 65 61 6e 20 76 65 |n* t, Bo|olean ve|
|00001490| 72 69 66 79 44 65 65 70 | 20 2f 2a 20 3d 20 66 61 |rifyDeep| /* = fa|
|000014a0| 6c 73 65 20 2a 2f 29 20 | 63 6f 6e 73 74 0d 7b 0d |lse */) |const.{.|
|000014b0| 09 2f 2f 0d 09 2f 2f 20 | 43 68 65 63 6b 20 70 72 |.//..// |Check pr|
|000014c0| 6f 70 65 72 74 69 65 73 | 20 61 6e 64 20 65 6c 65 |operties| and ele|
|000014d0| 6d 65 6e 74 73 0d 09 2f | 2f 0d 09 41 43 6f 6e 73 |ments../|/..ACons|
|000014e0| 74 3c 54 44 42 45 6c 65 | 6d 65 6e 74 3e 20 65 6c |t<TDBEle|ment> el|
|000014f0| 65 6d 65 6e 74 73 20 3d | 20 74 68 69 73 2d 3e 45 |ements =| this->E|
|00001500| 6c 65 6d 65 6e 74 73 28 | 74 29 3b 0d 09 69 66 28 |lements(|t);..if(|
|00001510| 65 6c 65 6d 65 6e 74 73 | 2e 45 78 69 73 74 73 28 |elements|.Exists(|
|00001520| 29 29 0d 09 7b 0d 09 09 | 69 66 28 65 6c 65 6d 65 |))..{...|if(eleme|
|00001530| 6e 74 73 2d 3e 4c 69 74 | 65 72 61 6c 50 61 72 65 |nts->Lit|eralPare|
|00001540| 6e 74 53 69 62 6c 69 6e | 67 28 74 29 2d 3e 52 65 |ntSiblin|g(t)->Re|
|00001550| 63 6f 72 64 49 6e 64 65 | 78 28 29 20 21 3d 20 74 |cordInde|x() != t|
|00001560| 68 69 73 2d 3e 52 65 63 | 6f 72 64 49 6e 64 65 78 |his->Rec|ordIndex|
|00001570| 28 29 29 0d 09 09 09 44 | 65 62 75 67 53 74 72 28 |())....D|ebugStr(|
|00001580| 22 5c 70 54 44 42 45 6c | 65 6d 65 6e 74 3a 3a 56 |"\pTDBEl|ement::V|
|00001590| 65 72 69 66 79 20 74 6f | 70 20 65 6c 65 6d 65 6e |erify to|p elemen|
|000015a0| 74 20 64 6f 65 73 6e 27 | 74 20 70 6f 69 6e 74 20 |t doesn'|t point |
|000015b0| 62 61 63 6b 22 29 3b 0d | 09 7d 0d 09 41 43 6f 6e |back");.|.}..ACon|
|000015c0| 73 74 3c 54 44 42 50 72 | 6f 70 65 72 74 79 3e 20 |st<TDBPr|operty> |
|000015d0| 70 72 6f 70 65 72 74 69 | 65 73 20 3d 20 74 68 69 |properti|es = thi|
|000015e0| 73 2d 3e 50 72 6f 70 65 | 72 74 69 65 73 28 74 29 |s->Prope|rties(t)|
|000015f0| 3b 0d 09 69 66 28 70 72 | 6f 70 65 72 74 69 65 73 |;..if(pr|operties|
|00001600| 2e 45 78 69 73 74 73 28 | 29 29 0d 09 7b 0d 09 09 |.Exists(|))..{...|
|00001610| 69 66 28 70 72 6f 70 65 | 72 74 69 65 73 2d 3e 4c |if(prope|rties->L|
|00001620| 69 74 65 72 61 6c 50 61 | 72 65 6e 74 53 69 62 6c |iteralPa|rentSibl|
|00001630| 69 6e 67 28 74 29 2d 3e | 52 65 63 6f 72 64 49 6e |ing(t)->|RecordIn|
|00001640| 64 65 78 28 29 20 21 3d | 20 74 68 69 73 2d 3e 52 |dex() !=| this->R|
|00001650| 65 63 6f 72 64 49 6e 64 | 65 78 28 29 29 0d 09 09 |ecordInd|ex())...|
|00001660| 09 44 65 62 75 67 53 74 | 72 28 22 5c 70 54 44 42 |.DebugSt|r("\pTDB|
|00001670| 45 6c 65 6d 65 6e 74 3a | 3a 56 65 72 69 66 79 20 |Element:|:Verify |
|00001680| 74 6f 70 20 70 72 6f 70 | 65 72 74 79 20 64 6f 65 |top prop|erty doe|
|00001690| 73 6e 27 74 20 70 6f 69 | 6e 74 20 62 61 63 6b 22 |sn't poi|nt back"|
|000016a0| 29 3b 0d 09 7d 0d 09 0d | 09 49 4e 48 45 52 49 54 |);..}...|.INHERIT|
|000016b0| 45 44 3a 3a 56 65 72 69 | 66 79 28 74 2c 20 76 65 |ED::Veri|fy(t, ve|
|000016c0| 72 69 66 79 44 65 65 70 | 29 3b 0d 09 0d 09 69 66 |rifyDeep|);....if|
|000016d0| 28 76 65 72 69 66 79 44 | 65 65 70 29 0d 09 7b 0d |(verifyD|eep)..{.|
|000016e0| 09 09 69 66 28 65 6c 65 | 6d 65 6e 74 73 2e 45 78 |..if(ele|ments.Ex|
|000016f0| 69 73 74 73 28 29 29 0d | 09 09 09 65 6c 65 6d 65 |ists()).|...eleme|
|00001700| 6e 74 73 2d 3e 56 65 72 | 69 66 79 28 74 2c 20 74 |nts->Ver|ify(t, t|
|00001710| 72 75 65 29 3b 0d 09 09 | 69 66 28 70 72 6f 70 65 |rue);...|if(prope|
|00001720| 72 74 69 65 73 2e 45 78 | 69 73 74 73 28 29 29 0d |rties.Ex|ists()).|
|00001730| 09 09 09 70 72 6f 70 65 | 72 74 69 65 73 2d 3e 56 |...prope|rties->V|
|00001740| 65 72 69 66 79 28 74 2c | 20 74 72 75 65 29 3b 0d |erify(t,| true);.|
|00001750| 09 7d 0d 7d 20 2f 2f 20 | 54 44 42 45 6c 65 6d 65 |.}.} // |TDBEleme|
|00001760| 6e 74 3a 3a 56 65 72 69 | 66 79 0d 0d 2f 2f 2d 2d |nt::Veri|fy..//--|
|00001770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001790| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 2f |--------|------./|
|000017c0| 2f 20 54 44 42 45 6c 65 | 6d 65 6e 74 3a 3a 49 6e |/ TDBEle|ment::In|
|000017d0| 69 74 69 61 6c 69 7a 65 | 4e 65 77 52 65 63 6f 72 |itialize|NewRecor|
|000017e0| 64 0d 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |d.//----|--------|
|000017f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001830| 2d 2d 2d 2d 0d 76 6f 69 | 64 20 54 44 42 45 6c 65 |----.voi|d TDBEle|
|00001840| 6d 65 6e 74 3a 3a 49 6e | 69 74 69 61 6c 69 7a 65 |ment::In|itialize|
|00001850| 4e 65 77 52 65 63 6f 72 | 64 28 54 54 72 61 6e 73 |NewRecor|d(TTrans|
|00001860| 61 63 74 69 6f 6e 2a 20 | 74 29 0d 7b 0d 09 49 4e |action* |t).{..IN|
|00001870| 48 45 52 49 54 45 44 3a | 3a 49 6e 69 74 69 61 6c |HERITED:|:Initial|
|00001880| 69 7a 65 4e 65 77 52 65 | 63 6f 72 64 28 74 29 3b |izeNewRe|cord(t);|
|00001890| 0d 0d 09 74 68 69 73 2d | 3e 53 65 74 52 65 63 6f |...this-|>SetReco|
|000018a0| 72 64 46 6c 61 67 73 28 | 74 2c 20 6b 49 6e 69 74 |rdFlags(|t, kInit|
|000018b0| 69 61 6c 4f 62 6a 65 63 | 74 52 65 63 6f 72 64 46 |ialObjec|tRecordF|
|000018c0| 6c 61 67 73 29 3b 0d 09 | 74 68 69 73 2d 3e 53 65 |lags);..|this->Se|
|000018d0| 74 50 61 72 65 6e 74 45 | 6c 65 6d 65 6e 74 49 6e |tParentE|lementIn|
|000018e0| 64 65 78 28 74 2c 20 6b | 4e 69 6c 49 6e 64 65 78 |dex(t, k|NilIndex|
|000018f0| 29 3b 0d 09 74 68 69 73 | 2d 3e 53 65 74 54 6f 70 |);..this|->SetTop|
|00001900| 43 68 69 6c 64 49 6e 64 | 65 78 28 74 2c 20 6b 4e |ChildInd|ex(t, kN|
|00001910| 69 6c 49 6e 64 65 78 29 | 3b 0d 09 74 68 69 73 2d |ilIndex)|;..this-|
|00001920| 3e 53 65 74 54 6f 70 50 | 72 6f 70 65 72 74 79 49 |>SetTopP|ropertyI|
|00001930| 6e 64 65 78 28 74 2c 20 | 6b 4e 69 6c 49 6e 64 65 |ndex(t, |kNilInde|
|00001940| 78 29 3b 0d 09 74 68 69 | 73 2d 3e 53 65 74 4e 61 |x);..thi|s->SetNa|
|00001950| 6d 65 50 72 6f 70 65 72 | 74 79 49 6e 64 65 78 28 |meProper|tyIndex(|
|00001960| 74 2c 20 6b 4e 69 6c 49 | 6e 64 65 78 29 3b 0d 7d |t, kNilI|ndex);.}|
|00001970| 20 2f 2f 20 54 44 42 45 | 6c 65 6d 65 6e 74 3a 3a | // TDBE|lement::|
|00001980| 49 6e 69 74 69 61 6c 69 | 7a 65 4e 65 77 52 65 63 |Initiali|zeNewRec|
|00001990| 6f 72 64 0d 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ord..//-|--------|
|000019a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000019b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000019c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000019d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000019e0| 2d 2d 2d 2d 2d 2d 2d 0d | 2f 2f 20 54 44 42 45 6c |-------.|// TDBEl|
|000019f0| 65 6d 65 6e 74 3a 3a 50 | 72 6f 70 65 72 74 79 56 |ement::P|ropertyV|
|00001a00| 61 6c 75 65 43 68 61 6e | 67 65 64 0d 2f 2f 0d 2f |alueChan|ged.//./|
|00001a10| 2f 20 57 68 65 6e 65 76 | 65 72 20 61 20 70 72 6f |/ Whenev|er a pro|
|00001a20| 70 65 72 74 79 20 63 68 | 61 6e 67 65 73 20 76 61 |perty ch|anges va|
|00001a30| 6c 75 65 2c 20 69 74 20 | 69 6e 66 6f 72 6d 73 20 |lue, it |informs |
|00001a40| 74 68 65 20 72 65 63 6f | 72 64 20 74 68 61 74 20 |the reco|rd that |
|00001a50| 6f 77 6e 73 20 69 74 20 | 62 79 0d 2f 2f 20 63 61 |owns it |by.// ca|
|00001a60| 6c 6c 69 6e 67 20 74 68 | 69 73 20 6d 65 74 68 6f |lling th|is metho|
|00001a70| 64 2e 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |d..//---|--------|
|00001a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ac0| 2d 2d 2d 2d 2d 0d 76 6f | 69 64 20 54 44 42 45 6c |-----.vo|id TDBEl|
|00001ad0| 65 6d 65 6e 74 3a 3a 50 | 72 6f 70 65 72 74 79 56 |ement::P|ropertyV|
|00001ae0| 61 6c 75 65 43 68 61 6e | 67 65 64 28 54 54 72 61 |alueChan|ged(TTra|
|00001af0| 6e 73 61 63 74 69 6f 6e | 2a 20 74 2c 20 41 43 6f |nsaction|* t, ACo|
|00001b00| 6e 73 74 3c 54 44 42 50 | 72 6f 70 65 72 74 79 3e |nst<TDBP|roperty>|
|00001b10| 20 70 72 6f 70 65 72 74 | 79 54 68 61 74 43 68 61 | propert|yThatCha|
|00001b20| 6e 67 65 64 29 0d 7b 0d | 09 2f 2f 0d 09 2f 2f 20 |nged).{.|.//..// |
|00001b30| 49 66 20 6f 75 72 20 6e | 61 6d 65 20 63 68 61 6e |If our n|ame chan|
|00001b40| 67 65 73 2c 20 74 68 65 | 6e 20 72 65 73 6f 72 74 |ges, the|n resort|
|00001b50| 20 74 68 69 73 20 72 65 | 63 6f 72 64 20 77 69 74 | this re|cord wit|
|00001b60| 68 69 6e 20 74 68 65 20 | 74 72 65 65 20 69 74 27 |hin the |tree it'|
|00001b70| 73 20 73 74 6f 72 65 64 | 20 69 6e 2e 0d 09 2f 2f |s stored| in...//|
|00001b80| 20 4e 6f 74 65 20 74 68 | 61 74 20 77 65 20 77 69 | Note th|at we wi|
|00001b90| 6c 6c 20 61 6c 73 6f 20 | 67 65 74 20 6e 6f 74 69 |ll also |get noti|
|00001ba0| 66 69 63 61 74 69 6f 6e | 20 77 68 65 6e 20 6f 75 |fication| when ou|
|00001bb0| 72 20 6e 61 6d 65 20 69 | 73 20 72 65 6d 6f 76 65 |r name i|s remove|
|00001bc0| 64 20 66 72 6f 6d 20 74 | 68 65 0d 09 2f 2f 20 74 |d from t|he..// t|
|00001bd0| 72 65 65 2c 20 73 6f 20 | 77 65 20 6e 65 65 64 20 |ree, so |we need |
|00001be0| 74 6f 20 63 68 65 63 6b | 20 66 6f 72 20 74 68 61 |to check| for tha|
|00001bf0| 74 20 63 61 73 65 20 61 | 73 20 77 65 6c 6c 2e 0d |t case a|s well..|
|00001c00| 09 2f 2f 0d 09 69 66 28 | 28 70 72 6f 70 65 72 74 |.//..if(|(propert|
|00001c10| 79 54 68 61 74 43 68 61 | 6e 67 65 64 2d 3e 50 72 |yThatCha|nged->Pr|
|00001c20| 6f 70 65 72 74 79 49 44 | 28 74 29 20 3d 3d 20 6b |opertyID|(t) == k|
|00001c30| 4e 61 6d 65 50 72 6f 70 | 65 72 74 79 29 20 26 26 |NameProp|erty) &&|
|00001c40| 20 28 70 72 6f 70 65 72 | 74 79 54 68 61 74 43 68 | (proper|tyThatCh|
|00001c50| 61 6e 67 65 64 2d 3e 52 | 65 63 6f 72 64 49 73 49 |anged->R|ecordIsI|
|00001c60| 6e 41 54 72 65 65 28 74 | 29 29 29 0d 09 7b 0d 09 |nATree(t|)))..{..|
|00001c70| 09 74 68 69 73 2d 3e 53 | 65 74 4e 61 6d 65 50 72 |.this->S|etNamePr|
|00001c80| 6f 70 65 72 74 79 49 6e | 64 65 78 28 74 2c 20 70 |opertyIn|dex(t, p|
|00001c90| 72 6f 70 65 72 74 79 54 | 68 61 74 43 68 61 6e 67 |ropertyT|hatChang|
|00001ca0| 65 64 2d 3e 52 65 63 6f | 72 64 49 6e 64 65 78 28 |ed->Reco|rdIndex(|
|00001cb0| 29 29 3b 0d 09 09 74 68 | 69 73 2d 3e 52 65 73 6f |));...th|is->Reso|
|00001cc0| 72 74 54 68 69 73 52 65 | 63 6f 72 64 28 74 29 3b |rtThisRe|cord(t);|
|00001cd0| 0d 09 7d 0d 09 2f 2f 0d | 09 2f 2f 20 49 66 20 74 |..}..//.|.// If t|
|00001ce0| 68 65 20 70 72 6f 70 65 | 72 74 79 20 74 68 61 74 |he prope|rty that|
|00001cf0| 20 63 68 61 6e 67 65 64 | 20 77 61 73 20 6f 75 72 | changed| was our|
|00001d00| 20 63 61 63 68 65 64 20 | 6e 61 6d 65 20 70 72 6f | cached |name pro|
|00001d10| 70 65 72 74 79 2c 0d 09 | 2f 2f 20 62 75 74 20 69 |perty,..|// but i|
|00001d20| 74 73 20 70 72 6f 70 65 | 72 74 79 20 49 44 20 69 |ts prope|rty ID i|
|00001d30| 73 20 6e 6f 20 6c 6f 6e | 67 65 72 20 6b 4e 61 6d |s no lon|ger kNam|
|00001d40| 65 50 72 6f 70 65 72 74 | 79 20 6f 72 20 69 74 20 |ePropert|y or it |
|00001d50| 69 73 20 6e 6f 0d 09 2f | 2f 20 6c 6f 6e 67 65 72 |is no../|/ longer|
|00001d60| 20 69 6e 20 6f 75 72 20 | 70 72 6f 70 65 72 74 79 | in our |property|
|00001d70| 20 74 72 65 65 2c 20 74 | 68 65 6e 20 63 6c 65 61 | tree, t|hen clea|
|00001d80| 72 20 6f 75 72 20 6e 61 | 6d 65 20 70 72 6f 70 65 |r our na|me prope|
|00001d90| 72 74 79 0d 09 2f 2f 20 | 63 61 63 68 65 20 65 6e |rty..// |cache en|
|00001da0| 74 72 79 2e 0d 09 2f 2f | 0d 09 65 6c 73 65 20 69 |try...//|..else i|
|00001db0| 66 28 70 72 6f 70 65 72 | 74 79 54 68 61 74 43 68 |f(proper|tyThatCh|
|00001dc0| 61 6e 67 65 64 2d 3e 52 | 65 63 6f 72 64 49 6e 64 |anged->R|ecordInd|
|00001dd0| 65 78 28 29 20 3d 3d 20 | 74 68 69 73 2d 3e 4e 61 |ex() == |this->Na|
|00001de0| 6d 65 50 72 6f 70 65 72 | 74 79 49 6e 64 65 78 28 |meProper|tyIndex(|
|00001df0| 74 29 29 0d 09 7b 0d 09 | 09 74 68 69 73 2d 3e 53 |t))..{..|.this->S|
|00001e00| 65 74 4e 61 6d 65 50 72 | 6f 70 65 72 74 79 49 6e |etNamePr|opertyIn|
|00001e10| 64 65 78 28 74 2c 20 6b | 4e 69 6c 49 6e 64 65 78 |dex(t, k|NilIndex|
|00001e20| 29 3b 0d 09 09 74 68 69 | 73 2d 3e 52 65 73 6f 72 |);...thi|s->Resor|
|00001e30| 74 54 68 69 73 52 65 63 | 6f 72 64 28 74 29 3b 0d |tThisRec|ord(t);.|
|00001e40| 09 7d 0d 7d 20 2f 2f 20 | 54 44 42 45 6c 65 6d 65 |.}.} // |TDBEleme|
|00001e50| 6e 74 3a 3a 50 72 6f 70 | 65 72 74 79 56 61 6c 75 |nt::Prop|ertyValu|
|00001e60| 65 43 68 61 6e 67 65 64 | 0d 0d 2f 2f 2d 2d 2d 2d |eChanged|..//----|
|00001e70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ea0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 2f 2f 20 |--------|----.// |
|00001ec0| 54 44 42 45 6c 65 6d 65 | 6e 74 3a 3a 47 65 74 50 |TDBEleme|nt::GetP|
|00001ed0| 72 6f 70 65 72 74 79 52 | 65 63 6f 72 64 46 6f 72 |ropertyR|ecordFor|
|00001ee0| 63 65 43 72 65 61 74 65 | 0d 2f 2f 2d 2d 2d 2d 2d |ceCreate|.//-----|
|00001ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 41 43 6f 6e |--------|---.ACon|
|00001f40| 73 74 3c 54 44 42 50 72 | 6f 70 65 72 74 79 3e 20 |st<TDBPr|operty> |
|00001f50| 54 44 42 45 6c 65 6d 65 | 6e 74 3a 3a 47 65 74 50 |TDBEleme|nt::GetP|
|00001f60| 72 6f 70 65 72 74 79 52 | 65 63 6f 72 64 46 6f 72 |ropertyR|ecordFor|
|00001f70| 63 65 43 72 65 61 74 65 | 28 54 54 72 61 6e 73 61 |ceCreate|(TTransa|
|00001f80| 63 74 69 6f 6e 2a 20 74 | 2c 20 6c 6f 6e 67 20 70 |ction* t|, long p|
|00001f90| 72 6f 70 65 72 74 79 49 | 44 29 0d 7b 0d 09 41 43 |ropertyI|D).{..AC|
|00001fa0| 6f 6e 73 74 3c 54 44 42 | 50 72 6f 70 65 72 74 79 |onst<TDB|Property|
|00001fb0| 3e 20 74 68 65 50 72 6f | 70 65 72 74 79 20 3d 20 |> thePro|perty = |
|00001fc0| 47 65 74 50 72 6f 70 65 | 72 74 79 52 65 63 6f 72 |GetPrope|rtyRecor|
|00001fd0| 64 28 74 2c 20 70 72 6f | 70 65 72 74 79 49 44 29 |d(t, pro|pertyID)|
|00001fe0| 3b 0d 09 0d 09 2f 2f 0d | 09 2f 2f 20 49 66 20 27 |;....//.|.// If '|
|00001ff0| 66 6f 72 63 65 43 72 65 | 61 74 65 27 20 69 73 20 |forceCre|ate' is |
|00002000| 74 72 75 65 20 61 6e 64 | 20 77 65 20 63 6f 75 6c |true and| we coul|
|00002010| 64 20 6e 6f 74 20 66 69 | 6e 64 20 74 68 65 20 70 |d not fi|nd the p|
|00002020| 72 6f 70 65 72 74 79 2c | 20 74 68 65 6e 0d 09 2f |roperty,| then../|
|00002030| 2f 20 63 72 65 61 74 65 | 20 69 74 20 6e 6f 77 20 |/ create| it now |
|00002040| 61 6e 64 20 61 64 64 20 | 69 74 20 74 6f 20 74 68 |and add |it to th|
|00002050| 65 20 74 72 65 65 0d 09 | 2f 2f 0d 09 69 66 28 74 |e tree..|//..if(t|
|00002060| 68 65 50 72 6f 70 65 72 | 74 79 2e 45 78 69 73 74 |heProper|ty.Exist|
|00002070| 73 28 29 20 3d 3d 20 66 | 61 6c 73 65 29 0d 09 7b |s() == f|alse)..{|
|00002080| 0d 09 09 41 6e 55 70 64 | 61 74 65 3c 54 44 42 50 |...AnUpd|ate<TDBP|
|00002090| 72 6f 70 65 72 74 79 3e | 20 75 70 64 61 74 65 50 |roperty>| updateP|
|000020a0| 72 6f 70 65 72 74 79 20 | 3d 20 74 68 69 73 2d 3e |roperty |= this->|
|000020b0| 44 42 44 6f 63 75 6d 65 | 6e 74 28 29 2d 3e 4e 65 |DBDocume|nt()->Ne|
|000020c0| 77 44 42 50 72 6f 70 65 | 72 74 79 28 74 29 3b 0d |wDBPrope|rty(t);.|
|000020d0| 09 09 75 70 64 61 74 65 | 50 72 6f 70 65 72 74 79 |..update|Property|
|000020e0| 2d 3e 53 65 74 50 72 6f | 70 65 72 74 79 49 44 28 |->SetPro|pertyID(|
|000020f0| 74 2c 20 70 72 6f 70 65 | 72 74 79 49 44 29 3b 0d |t, prope|rtyID);.|
|00002100| 09 09 74 68 69 73 2d 3e | 41 64 64 50 72 6f 70 65 |..this->|AddPrope|
|00002110| 72 74 79 28 74 2c 20 75 | 70 64 61 74 65 50 72 6f |rty(t, u|pdatePro|
|00002120| 70 65 72 74 79 29 3b 0d | 09 09 0d 09 09 74 68 65 |perty);.|.....the|
|00002130| 50 72 6f 70 65 72 74 79 | 20 3d 20 41 43 6f 6e 73 |Property| = ACons|
|00002140| 74 3c 54 44 42 50 72 6f | 70 65 72 74 79 3e 28 75 |t<TDBPro|perty>(u|
|00002150| 70 64 61 74 65 50 72 6f | 70 65 72 74 79 29 3b 0d |pdatePro|perty);.|
|00002160| 09 09 0d 09 09 2f 2f 0d | 09 09 2f 2f 20 43 61 63 |.....//.|..// Cac|
|00002170| 68 65 20 74 68 65 20 69 | 6e 64 65 78 20 6f 66 20 |he the i|ndex of |
|00002180| 74 68 65 20 6e 61 6d 65 | 20 77 68 65 6e 20 69 74 |the name| when it|
|00002190| 27 73 20 63 72 65 61 74 | 65 64 0d 09 09 2f 2f 0d |'s creat|ed...//.|
|000021a0| 09 09 69 66 28 70 72 6f | 70 65 72 74 79 49 44 20 |..if(pro|pertyID |
|000021b0| 3d 3d 20 6b 4e 61 6d 65 | 50 72 6f 70 65 72 74 79 |== kName|Property|
|000021c0| 29 0d 09 09 7b 0d 09 09 | 09 74 68 69 73 2d 3e 53 |)...{...|.this->S|
|000021d0| 65 74 4e 61 6d 65 50 72 | 6f 70 65 72 74 79 49 6e |etNamePr|opertyIn|
|000021e0| 64 65 78 28 74 2c 20 74 | 68 65 50 72 6f 70 65 72 |dex(t, t|heProper|
|000021f0| 74 79 2d 3e 52 65 63 6f | 72 64 49 6e 64 65 78 28 |ty->Reco|rdIndex(|
|00002200| 29 29 3b 0d 09 09 7d 0d | 09 7d 0d 09 0d 09 72 65 |));...}.|.}....re|
|00002210| 74 75 72 6e 20 74 68 65 | 50 72 6f 70 65 72 74 79 |turn the|Property|
|00002220| 3b 0d 7d 20 2f 2f 20 54 | 44 42 45 6c 65 6d 65 6e |;.} // T|DBElemen|
|00002230| 74 3a 3a 47 65 74 50 72 | 6f 70 65 72 74 79 52 65 |t::GetPr|opertyRe|
|00002240| 63 6f 72 64 46 6f 72 63 | 65 43 72 65 61 74 65 0d |cordForc|eCreate.|
|00002250| 0d 2f 2f 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.//-----|--------|
|00002260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002270| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002280| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022a0| 2d 2d 2d 0d 2f 2f 20 54 | 44 42 45 6c 65 6d 65 6e |---.// T|DBElemen|
|000022b0| 74 3a 3a 41 64 64 45 6c | 65 6d 65 6e 74 0d 2f 2f |t::AddEl|ement.//|
|000022c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002310| 0d 76 6f 69 64 20 54 44 | 42 45 6c 65 6d 65 6e 74 |.void TD|BElement|
|00002320| 3a 3a 41 64 64 45 6c 65 | 6d 65 6e 74 28 54 54 72 |::AddEle|ment(TTr|
|00002330| 61 6e 73 61 63 74 69 6f | 6e 2a 20 74 2c 20 41 6e |ansactio|n* t, An|
|00002340| 55 70 64 61 74 65 3c 54 | 44 42 45 6c 65 6d 65 6e |Update<T|DBElemen|
|00002350| 74 3e 20 6e 65 77 45 6c | 65 6d 65 6e 74 29 0d 7b |t> newEl|ement).{|
|00002360| 0d 09 41 43 6f 6e 73 74 | 3c 54 44 42 45 6c 65 6d |..AConst|<TDBElem|
|00002370| 65 6e 74 3e 20 74 6f 70 | 45 6c 65 6d 65 6e 74 20 |ent> top|Element |
|00002380| 3d 20 74 68 69 73 2d 3e | 45 6c 65 6d 65 6e 74 73 |= this->|Elements|
|00002390| 28 74 29 3b 0d 09 69 66 | 28 74 6f 70 45 6c 65 6d |(t);..if|(topElem|
|000023a0| 65 6e 74 2e 45 78 69 73 | 74 73 28 29 29 0d 09 7b |ent.Exis|ts())..{|
|000023b0| 0d 09 09 28 74 68 69 73 | 2d 3e 54 72 61 6e 73 61 |...(this|->Transa|
|000023c0| 63 74 69 6f 6e 28 29 2d | 3e 47 65 74 44 42 45 6c |ction()-|>GetDBEl|
|000023d0| 65 6d 65 6e 74 55 70 64 | 61 74 65 50 6f 69 6e 74 |ementUpd|atePoint|
|000023e0| 65 72 28 74 6f 70 45 6c | 65 6d 65 6e 74 29 29 2d |er(topEl|ement))-|
|000023f0| 3e 49 6e 73 65 72 74 28 | 74 2c 20 6e 65 77 45 6c |>Insert(|t, newEl|
|00002400| 65 6d 65 6e 74 29 3b 0d | 09 7d 0d 09 65 6c 73 65 |ement);.|.}..else|
|00002410| 0d 09 7b 0d 09 09 74 68 | 69 73 2d 3e 53 65 74 45 |..{...th|is->SetE|
|00002420| 6c 65 6d 65 6e 74 73 28 | 74 2c 20 6e 65 77 45 6c |lements(|t, newEl|
|00002430| 65 6d 65 6e 74 29 3b 0d | 09 09 6e 65 77 45 6c 65 |ement);.|..newEle|
|00002440| 6d 65 6e 74 2d 3e 53 65 | 74 52 65 63 6f 72 64 49 |ment->Se|tRecordI|
|00002450| 73 41 74 54 6f 70 4f 66 | 54 72 65 65 28 74 2c 20 |sAtTopOf|Tree(t, |
|00002460| 74 72 75 65 29 3b 0d 09 | 09 6e 65 77 45 6c 65 6d |true);..|.newElem|
|00002470| 65 6e 74 2d 3e 53 65 74 | 50 61 72 65 6e 74 53 69 |ent->Set|ParentSi|
|00002480| 62 6c 69 6e 67 28 74 2c | 20 74 68 69 73 29 3b 0d |bling(t,| this);.|
|00002490| 09 7d 0d 0d 09 2f 2f 0d | 09 2f 2f 20 4f 6e 65 20 |.}...//.|.// One |
|000024a0| 6f 66 20 74 68 65 73 65 | 20 64 61 79 73 20 77 65 |of these| days we|
|000024b0| 20 73 68 6f 75 6c 64 20 | 6e 75 6d 62 65 72 20 74 | should |number t|
|000024c0| 68 65 20 74 72 65 65 0d | 09 2f 2f 0d 09 6e 65 77 |he tree.|.//..new|
|000024d0| 45 6c 65 6d 65 6e 74 2d | 3e 53 65 74 4e 6f 64 65 |Element-|>SetNode|
|000024e0| 4e 75 6d 62 65 72 28 74 | 2c 20 30 29 3b 0d 09 6e |Number(t|, 0);..n|
|000024f0| 65 77 45 6c 65 6d 65 6e | 74 2d 3e 53 65 74 50 61 |ewElemen|t->SetPa|
|00002500| 72 65 6e 74 45 6c 65 6d | 65 6e 74 28 74 2c 20 74 |rentElem|ent(t, t|
|00002510| 68 69 73 29 3b 0d 09 0d | 23 69 66 64 65 66 20 53 |his);...|#ifdef S|
|00002520| 4c 4f 57 44 45 42 55 47 | 0d 09 6e 65 77 45 6c 65 |LOWDEBUG|..newEle|
|00002530| 6d 65 6e 74 2d 3e 56 65 | 72 69 66 79 28 74 29 3b |ment->Ve|rify(t);|
|00002540| 0d 09 74 68 69 73 2d 3e | 56 65 72 69 66 79 28 74 |..this->|Verify(t|
|00002550| 2c 20 74 72 75 65 29 3b | 0d 23 65 6e 64 69 66 0d |, true);|.#endif.|
|00002560| 7d 20 2f 2f 20 54 44 42 | 45 6c 65 6d 65 6e 74 3a |} // TDB|Element:|
|00002570| 3a 41 64 64 45 6c 65 6d | 65 6e 74 0d 0d 2f 2f 2d |:AddElem|ent..//-|
|00002580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000025a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000025b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000025c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|000025d0| 2f 2f 20 54 44 42 45 6c | 65 6d 65 6e 74 3a 3a 41 |// TDBEl|ement::A|
|000025e0| 64 64 50 72 6f 70 65 72 | 74 79 0d 2f 2f 2d 2d 2d |ddProper|ty.//---|
|000025f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002610| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002620| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002630| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 76 6f |--------|-----.vo|
|00002640| 69 64 20 54 44 42 45 6c | 65 6d 65 6e 74 3a 3a 41 |id TDBEl|ement::A|
|00002650| 64 64 50 72 6f 70 65 72 | 74 79 28 54 54 72 61 6e |ddProper|ty(TTran|
|00002660| 73 61 63 74 69 6f 6e 2a | 20 74 2c 20 41 6e 55 70 |saction*| t, AnUp|
|00002670| 64 61 74 65 3c 54 44 42 | 50 72 6f 70 65 72 74 79 |date<TDB|Property|
|00002680| 3e 20 6e 65 77 50 72 6f | 70 65 72 74 79 29 0d 7b |> newPro|perty).{|
|00002690| 0d 09 2f 2f 0d 09 2f 2f | 20 43 68 65 63 6b 20 74 |..//..//| Check t|
|000026a0| 6f 20 73 65 65 20 69 66 | 20 74 68 65 72 65 27 73 |o see if| there's|
|000026b0| 20 61 6c 72 65 61 64 79 | 20 61 20 70 72 6f 70 65 | already| a prope|
|000026c0| 72 74 79 20 77 69 74 68 | 20 74 68 69 73 20 49 44 |rty with| this ID|
|000026d0| 0d 09 2f 2f 0d 09 41 43 | 6f 6e 73 74 3c 54 44 42 |..//..AC|onst<TDB|
|000026e0| 50 72 6f 70 65 72 74 79 | 3e 20 65 78 69 73 74 69 |Property|> existi|
|000026f0| 6e 67 50 72 6f 70 65 72 | 74 79 20 3d 20 74 68 69 |ngProper|ty = thi|
|00002700| 73 2d 3e 47 65 74 50 72 | 6f 70 65 72 74 79 52 65 |s->GetPr|opertyRe|
|00002710| 63 6f 72 64 28 74 2c 20 | 6e 65 77 50 72 6f 70 65 |cord(t, |newPrope|
|00002720| 72 74 79 2d 3e 50 72 6f | 70 65 72 74 79 49 44 28 |rty->Pro|pertyID(|
|00002730| 74 29 29 3b 0d 09 42 6f | 6f 6c 65 61 6e 20 61 64 |t));..Bo|olean ad|
|00002740| 64 4e 65 77 50 72 6f 70 | 65 72 74 79 54 6f 54 72 |dNewProp|ertyToTr|
|00002750| 65 65 20 3d 20 74 72 75 | 65 3b 0d 09 0d 09 69 66 |ee = tru|e;....if|
|00002760| 28 65 78 69 73 74 69 6e | 67 50 72 6f 70 65 72 74 |(existin|gPropert|
|00002770| 79 2e 45 78 69 73 74 73 | 28 29 29 0d 09 7b 0d 09 |y.Exists|())..{..|
|00002780| 09 2f 2f 0d 09 09 2f 2f | 20 49 66 20 74 68 65 20 |.//...//| If the |
|00002790| 6e 65 77 20 70 72 6f 70 | 65 72 74 79 20 69 73 20 |new prop|erty is |
|000027a0| 61 6c 72 65 61 64 79 20 | 69 6e 20 74 68 65 20 74 |already |in the t|
|000027b0| 72 65 65 2c 20 74 68 65 | 6e 20 77 65 0d 09 09 2f |ree, the|n we.../|
|000027c0| 2f 20 64 6f 6e 27 74 20 | 72 65 61 6c 6c 79 20 6e |/ don't |really n|
|000027d0| 65 65 64 20 74 6f 20 64 | 6f 20 61 6e 79 74 68 69 |eed to d|o anythi|
|000027e0| 6e 67 20 65 6c 73 65 2e | 0d 09 09 2f 2f 0d 09 09 |ng else.|...//...|
|000027f0| 69 66 28 65 78 69 73 74 | 69 6e 67 50 72 6f 70 65 |if(exist|ingPrope|
|00002800| 72 74 79 2d 3e 52 65 63 | 6f 72 64 49 6e 64 65 78 |rty->Rec|ordIndex|
|00002810| 28 29 20 3d 3d 20 6e 65 | 77 50 72 6f 70 65 72 74 |() == ne|wPropert|
|00002820| 79 2d 3e 52 65 63 6f 72 | 64 49 6e 64 65 78 28 29 |y->Recor|dIndex()|
|00002830| 29 0d 09 09 7b 0d 09 09 | 09 61 64 64 4e 65 77 50 |)...{...|.addNewP|
|00002840| 72 6f 70 65 72 74 79 54 | 6f 54 72 65 65 20 3d 20 |ropertyT|oTree = |
|00002850| 66 61 6c 73 65 3b 0d 09 | 09 7d 0d 09 09 2f 2f 0d |false;..|.}...//.|
|00002860| 09 09 2f 2f 20 44 65 6c | 65 74 65 20 74 68 65 20 |..// Del|ete the |
|00002870| 65 78 69 73 74 69 6e 67 | 20 70 72 6f 70 65 72 74 |existing| propert|
|00002880| 79 20 69 66 20 69 74 20 | 69 73 6e 27 74 20 74 68 |y if it |isn't th|
|00002890| 65 20 73 61 6d 65 20 70 | 72 6f 70 65 72 74 79 0d |e same p|roperty.|
|000028a0| 09 09 2f 2f 20 74 68 61 | 74 27 73 20 61 6c 72 65 |..// tha|t's alre|
|000028b0| 61 64 79 20 69 6e 20 74 | 68 65 20 74 72 65 65 2e |ady in t|he tree.|
|000028c0| 0d 09 09 2f 2f 0d 09 09 | 2f 2f 20 4e 4f 54 45 3a |...//...|// NOTE:|
|000028d0| 20 20 49 74 20 77 6f 75 | 6c 64 20 62 65 20 57 41 | It wou|ld be WA|
|000028e0| 59 20 62 65 74 74 65 72 | 20 74 6f 20 63 6f 70 79 |Y better| to copy|
|000028f0| 20 74 68 65 20 63 6f 6e | 74 65 6e 74 73 20 6f 66 | the con|tents of|
|00002900| 0d 09 09 2f 2f 20 22 6e | 65 77 50 72 6f 70 65 72 |...// "n|ewProper|
|00002910| 74 79 22 20 69 6e 74 6f | 20 22 65 78 69 73 74 69 |ty" into| "existi|
|00002920| 6e 67 50 72 6f 70 65 72 | 74 79 22 20 61 6e 64 20 |ngProper|ty" and |
|00002930| 74 68 65 6e 20 66 72 65 | 65 20 74 68 65 0d 09 09 |then fre|e the...|
|00002940| 2f 2f 20 6e 65 77 20 70 | 72 6f 70 65 72 74 79 3b |// new p|roperty;|
|00002950| 20 74 68 61 74 20 77 61 | 79 2c 20 70 72 6f 70 65 | that wa|y, prope|
|00002960| 72 74 69 65 73 20 74 68 | 61 74 20 68 61 76 65 20 |rties th|at have |
|00002970| 62 65 65 6e 20 70 6c 61 | 63 65 64 0d 09 09 2f 2f |been pla|ced...//|
|00002980| 20 63 6c 6f 73 65 20 74 | 6f 20 74 68 65 20 72 65 | close t|o the re|
|00002990| 63 6f 72 64 20 74 68 65 | 79 20 61 72 65 20 69 6e |cord the|y are in|
|000029a0| 20 77 69 6c 6c 20 72 65 | 6d 61 69 6e 20 69 6e 20 | will re|main in |
|000029b0| 74 68 65 69 72 20 6f 70 | 74 69 6d 61 6c 0d 09 09 |their op|timal...|
|000029c0| 2f 2f 20 70 6f 73 69 74 | 69 6f 6e 2e 20 20 54 68 |// posit|ion. Th|
|000029d0| 65 20 70 72 6f 62 6c 65 | 6d 20 77 69 74 68 20 74 |e proble|m with t|
|000029e0| 68 61 74 20 74 65 63 68 | 6e 69 71 75 65 20 69 73 |hat tech|nique is|
|000029f0| 20 74 68 61 74 20 69 74 | 0d 09 09 2f 2f 20 77 6f | that it|...// wo|
|00002a00| 75 6c 64 20 72 65 71 75 | 69 72 65 20 63 6c 69 65 |uld requ|ire clie|
|00002a10| 6e 74 73 20 6f 66 20 22 | 41 64 64 50 72 6f 70 65 |nts of "|AddPrope|
|00002a20| 72 74 79 22 20 74 6f 20 | 74 61 6b 65 20 69 6e 74 |rty" to |take int|
|00002a30| 6f 20 61 63 63 6f 75 6e | 74 0d 09 09 2f 2f 20 74 |o accoun|t...// t|
|00002a40| 68 61 74 20 22 6e 65 77 | 50 72 6f 70 65 72 74 79 |hat "new|Property|
|00002a50| 22 20 6d 69 67 68 74 20 | 62 65 20 64 65 6c 65 74 |" might |be delet|
|00002a60| 65 64 2e 0d 09 09 2f 2f | 0d 09 09 65 6c 73 65 0d |ed....//|...else.|
|00002a70| 09 09 7b 0d 09 09 09 41 | 6e 55 70 64 61 74 65 3c |..{....A|nUpdate<|
|00002a80| 54 44 42 50 72 6f 70 65 | 72 74 79 3e 20 75 70 64 |TDBPrope|rty> upd|
|00002a90| 61 74 65 45 78 69 73 74 | 69 6e 67 50 72 6f 70 65 |ateExist|ingPrope|
|00002aa0| 72 74 79 20 3d 20 74 68 | 69 73 2d 3e 54 72 61 6e |rty = th|is->Tran|
|00002ab0| 73 61 63 74 69 6f 6e 28 | 29 2d 3e 47 65 74 44 42 |saction(|)->GetDB|
|00002ac0| 50 72 6f 70 65 72 74 79 | 55 70 64 61 74 65 50 6f |Property|UpdatePo|
|00002ad0| 69 6e 74 65 72 28 65 78 | 69 73 74 69 6e 67 50 72 |inter(ex|istingPr|
|00002ae0| 6f 70 65 72 74 79 29 3b | 0d 09 09 09 75 70 64 61 |operty);|....upda|
|00002af0| 74 65 45 78 69 73 74 69 | 6e 67 50 72 6f 70 65 72 |teExisti|ngProper|
|00002b00| 74 79 2d 3e 52 65 6d 6f | 76 65 46 72 6f 6d 54 72 |ty->Remo|veFromTr|
|00002b10| 65 65 28 74 29 3b 0d 09 | 09 09 75 70 64 61 74 65 |ee(t);..|..update|
|00002b20| 45 78 69 73 74 69 6e 67 | 50 72 6f 70 65 72 74 79 |Existing|Property|
|00002b30| 2d 3e 46 72 65 65 54 68 | 69 73 52 65 63 6f 72 64 |->FreeTh|isRecord|
|00002b40| 28 74 29 3b 0d 09 09 7d | 0d 09 7d 0d 09 09 0d 09 |(t);...}|..}.....|
|00002b50| 2f 2f 0d 09 2f 2f 20 41 | 64 64 20 74 68 65 20 6e |//..// A|dd the n|
|00002b60| 65 77 20 70 72 6f 70 65 | 72 74 79 20 74 6f 20 74 |ew prope|rty to t|
|00002b70| 68 65 20 74 72 65 65 20 | 61 66 74 65 72 20 74 68 |he tree |after th|
|00002b80| 65 20 6f 6c 64 20 6f 6e | 65 27 73 20 67 6f 6e 65 |e old on|e's gone|
|00002b90| 0d 09 2f 2f 0d 09 69 66 | 28 61 64 64 4e 65 77 50 |..//..if|(addNewP|
|00002ba0| 72 6f 70 65 72 74 79 54 | 6f 54 72 65 65 20 3d 3d |ropertyT|oTree ==|
|00002bb0| 20 74 72 75 65 29 0d 09 | 7b 0d 09 09 41 43 6f 6e | true)..|{...ACon|
|00002bc0| 73 74 3c 54 44 42 50 72 | 6f 70 65 72 74 79 3e 20 |st<TDBPr|operty> |
|00002bd0| 74 6f 70 50 72 6f 70 65 | 72 74 79 20 3d 20 74 68 |topPrope|rty = th|
|00002be0| 69 73 2d 3e 50 72 6f 70 | 65 72 74 69 65 73 28 74 |is->Prop|erties(t|
|00002bf0| 29 3b 0d 09 09 69 66 28 | 74 6f 70 50 72 6f 70 65 |);...if(|topPrope|
|00002c00| 72 74 79 2e 45 78 69 73 | 74 73 28 29 29 0d 09 09 |rty.Exis|ts())...|
|00002c10| 7b 0d 09 09 09 28 74 68 | 69 73 2d 3e 54 72 61 6e |{....(th|is->Tran|
|00002c20| 73 61 63 74 69 6f 6e 28 | 29 2d 3e 47 65 74 44 42 |saction(|)->GetDB|
|00002c30| 50 72 6f 70 65 72 74 79 | 55 70 64 61 74 65 50 6f |Property|UpdatePo|
|00002c40| 69 6e 74 65 72 28 74 6f | 70 50 72 6f 70 65 72 74 |inter(to|pPropert|
|00002c50| 79 29 29 2d 3e 49 6e 73 | 65 72 74 28 74 2c 20 6e |y))->Ins|ert(t, n|
|00002c60| 65 77 50 72 6f 70 65 72 | 74 79 29 3b 0d 09 09 7d |ewProper|ty);...}|
|00002c70| 0d 09 09 65 6c 73 65 0d | 09 09 7b 0d 09 09 09 74 |...else.|..{....t|
|00002c80| 68 69 73 2d 3e 53 65 74 | 50 72 6f 70 65 72 74 69 |his->Set|Properti|
|00002c90| 65 73 28 74 2c 20 6e 65 | 77 50 72 6f 70 65 72 74 |es(t, ne|wPropert|
|00002ca0| 79 29 3b 0d 09 09 09 6e | 65 77 50 72 6f 70 65 72 |y);....n|ewProper|
|00002cb0| 74 79 2d 3e 53 65 74 52 | 65 63 6f 72 64 49 73 41 |ty->SetR|ecordIsA|
|00002cc0| 74 54 6f 70 4f 66 54 72 | 65 65 28 74 2c 20 74 72 |tTopOfTr|ee(t, tr|
|00002cd0| 75 65 29 3b 0d 09 09 09 | 6e 65 77 50 72 6f 70 65 |ue);....|newPrope|
|00002ce0| 72 74 79 2d 3e 53 65 74 | 50 61 72 65 6e 74 53 69 |rty->Set|ParentSi|
|00002cf0| 62 6c 69 6e 67 28 74 2c | 20 74 68 69 73 29 3b 0d |bling(t,| this);.|
|00002d00| 09 09 7d 0d 09 7d 0d 09 | 0d 09 2f 2f 0d 09 2f 2f |..}..}..|..//..//|
|00002d10| 20 57 72 69 74 65 20 69 | 6e 20 74 68 65 20 69 6e | Write i|n the in|
|00002d20| 64 65 78 20 6f 66 20 74 | 68 69 73 20 70 72 6f 70 |dex of t|his prop|
|00002d30| 65 72 74 79 20 69 66 20 | 69 74 27 73 20 74 68 65 |erty if |it's the|
|00002d40| 20 22 6e 61 6d 65 22 20 | 70 72 6f 70 65 72 74 79 | "name" |property|
|00002d50| 0d 09 2f 2f 0d 09 69 66 | 28 6e 65 77 50 72 6f 70 |..//..if|(newProp|
|00002d60| 65 72 74 79 2d 3e 50 72 | 6f 70 65 72 74 79 49 44 |erty->Pr|opertyID|
|00002d70| 28 74 29 20 3d 3d 20 6b | 4e 61 6d 65 50 72 6f 70 |(t) == k|NameProp|
|00002d80| 65 72 74 79 29 0d 09 7b | 0d 09 09 74 68 69 73 2d |erty)..{|...this-|
|00002d90| 3e 53 65 74 4e 61 6d 65 | 50 72 6f 70 65 72 74 79 |>SetName|Property|
|00002da0| 49 6e 64 65 78 28 74 2c | 20 6e 65 77 50 72 6f 70 |Index(t,| newProp|
|00002db0| 65 72 74 79 2d 3e 52 65 | 63 6f 72 64 49 6e 64 65 |erty->Re|cordInde|
|00002dc0| 78 28 29 29 3b 0d 09 7d | 0d 09 0d 23 69 66 64 65 |x());..}|...#ifde|
|00002dd0| 66 20 53 4c 4f 57 44 45 | 42 55 47 0d 09 6e 65 77 |f SLOWDE|BUG..new|
|00002de0| 50 72 6f 70 65 72 74 79 | 2d 3e 56 65 72 69 66 79 |Property|->Verify|
|00002df0| 28 74 29 3b 0d 09 74 68 | 69 73 2d 3e 56 65 72 69 |(t);..th|is->Veri|
|00002e00| 66 79 28 74 2c 20 74 72 | 75 65 29 3b 0d 23 65 6e |fy(t, tr|ue);.#en|
|00002e10| 64 69 66 0d 7d 20 2f 2f | 20 54 44 42 45 6c 65 6d |dif.} //| TDBElem|
|00002e20| 65 6e 74 3a 3a 41 64 64 | 50 72 6f 70 65 72 74 79 |ent::Add|Property|
|00002e30| 0d 0d 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..//----|--------|
|00002e40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e80| 2d 2d 2d 2d 0d 2f 2f 20 | 54 44 42 45 6c 65 6d 65 |----.// |TDBEleme|
|00002e90| 6e 74 3a 3a 41 64 64 4c | 6f 6e 67 77 6f 72 64 50 |nt::AddL|ongwordP|
|00002ea0| 72 6f 70 65 72 74 79 0d | 2f 2f 2d 2d 2d 2d 2d 2d |roperty.|//------|
|00002eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 76 6f 69 64 20 |--------|--.void |
|00002f00| 54 44 42 45 6c 65 6d 65 | 6e 74 3a 3a 41 64 64 4c |TDBEleme|nt::AddL|
|00002f10| 6f 6e 67 77 6f 72 64 50 | 72 6f 70 65 72 74 79 28 |ongwordP|roperty(|
|00002f20| 54 54 72 61 6e 73 61 63 | 74 69 6f 6e 2a 20 74 2c |TTransac|tion* t,|
|00002f30| 20 6c 6f 6e 67 20 70 72 | 6f 70 65 72 74 79 49 44 | long pr|opertyID|
|00002f40| 2c 20 6c 6f 6e 67 20 6e | 65 77 56 61 6c 75 65 29 |, long n|ewValue)|
|00002f50| 0d 7b 0d 09 41 43 6f 6e | 73 74 3c 54 44 42 50 72 |.{..ACon|st<TDBPr|
|00002f60| 6f 70 65 72 74 79 3e 20 | 64 61 74 61 43 75 72 73 |operty> |dataCurs|
|00002f70| 6f 72 20 3d 20 74 68 69 | 73 2d 3e 47 65 74 50 72 |or = thi|s->GetPr|
|00002f80| 6f 70 65 72 74 79 52 65 | 63 6f 72 64 46 6f 72 63 |opertyRe|cordForc|
|00002f90| 65 43 72 65 61 74 65 28 | 74 2c 20 70 72 6f 70 65 |eCreate(|t, prope|
|00002fa0| 72 74 79 49 44 29 3b 0d | 09 28 74 68 69 73 2d 3e |rtyID);.|.(this->|
|00002fb0| 54 72 61 6e 73 61 63 74 | 69 6f 6e 28 29 2d 3e 47 |Transact|ion()->G|
|00002fc0| 65 74 44 42 50 72 6f 70 | 65 72 74 79 55 70 64 61 |etDBProp|ertyUpda|
|00002fd0| 74 65 50 6f 69 6e 74 65 | 72 28 64 61 74 61 43 75 |tePointe|r(dataCu|
|00002fe0| 72 73 6f 72 29 29 2d 3e | 53 65 74 4c 6f 6e 67 44 |rsor))->|SetLongD|
|00002ff0| 61 74 61 28 74 2c 20 6e | 65 77 56 61 6c 75 65 29 |ata(t, n|ewValue)|
|00003000| 3b 0d 7d 20 2f 2f 20 54 | 44 42 45 6c 65 6d 65 6e |;.} // T|DBElemen|
|00003010| 74 3a 3a 41 64 64 4c 6f | 6e 67 77 6f 72 64 50 72 |t::AddLo|ngwordPr|
|00003020| 6f 70 65 72 74 79 0d 0d | 2f 2f 2d 2d 2d 2d 2d 2d |operty..|//------|
|00003030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003060| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003070| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 54 44 |--------|--.// TD|
|00003080| 42 45 6c 65 6d 65 6e 74 | 3a 3a 41 64 64 54 79 70 |BElement|::AddTyp|
|00003090| 65 64 50 72 6f 70 65 72 | 74 79 0d 2f 2f 2d 2d 2d |edProper|ty.//---|
|000030a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 76 6f |--------|-----.vo|
|000030f0| 69 64 20 54 44 42 45 6c | 65 6d 65 6e 74 3a 3a 41 |id TDBEl|ement::A|
|00003100| 64 64 54 79 70 65 64 50 | 72 6f 70 65 72 74 79 28 |ddTypedP|roperty(|
|00003110| 54 54 72 61 6e 73 61 63 | 74 69 6f 6e 2a 20 74 2c |TTransac|tion* t,|
|00003120| 20 6c 6f 6e 67 20 70 72 | 6f 70 65 72 74 79 49 44 | long pr|opertyID|
|00003130| 2c 20 63 6f 6e 73 74 20 | 54 43 6f 6e 73 74 44 61 |, const |TConstDa|
|00003140| 74 61 52 65 66 65 72 65 | 6e 63 65 26 20 64 61 74 |taRefere|nce& dat|
|00003150| 61 29 0d 7b 0d 09 41 43 | 6f 6e 73 74 3c 54 44 42 |a).{..AC|onst<TDB|
|00003160| 50 72 6f 70 65 72 74 79 | 3e 20 64 61 74 61 43 75 |Property|> dataCu|
|00003170| 72 73 6f 72 20 3d 20 74 | 68 69 73 2d 3e 47 65 74 |rsor = t|his->Get|
|00003180| 50 72 6f 70 65 72 74 79 | 52 65 63 6f 72 64 46 6f |Property|RecordFo|
|00003190| 72 63 65 43 72 65 61 74 | 65 28 74 2c 20 70 72 6f |rceCreat|e(t, pro|
|000031a0| 70 65 72 74 79 49 44 29 | 3b 0d 09 28 74 68 69 73 |pertyID)|;..(this|
|000031b0| 2d 3e 54 72 61 6e 73 61 | 63 74 69 6f 6e 28 29 2d |->Transa|ction()-|
|000031c0| 3e 47 65 74 44 42 50 72 | 6f 70 65 72 74 79 55 70 |>GetDBPr|opertyUp|
|000031d0| 64 61 74 65 50 6f 69 6e | 74 65 72 28 64 61 74 61 |datePoin|ter(data|
|000031e0| 43 75 72 73 6f 72 29 29 | 2d 3e 53 65 74 54 79 70 |Cursor))|->SetTyp|
|000031f0| 65 64 44 61 74 61 28 74 | 2c 20 64 61 74 61 29 3b |edData(t|, data);|
|00003200| 0d 7d 20 2f 2f 20 54 44 | 42 45 6c 65 6d 65 6e 74 |.} // TD|BElement|
|00003210| 3a 3a 41 64 64 54 79 70 | 65 64 50 72 6f 70 65 72 |::AddTyp|edProper|
|00003220| 74 79 0d 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ty..//--|--------|
|00003230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003270| 2d 2d 2d 2d 2d 2d 0d 2f | 2f 20 54 4f 62 6a 65 63 |------./|/ TObjec|
|00003280| 74 52 65 63 6f 72 64 43 | 6f 6d 70 61 72 69 73 6f |tRecordC|ompariso|
|00003290| 6e 4f 62 6a 65 63 74 3a | 3a 54 65 73 74 4f 62 6a |nObject:|:TestObj|
|000032a0| 65 63 74 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ect.//--|--------|
|000032b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000032c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000032d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000032e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000032f0| 2d 2d 2d 2d 2d 2d 0d 43 | 6f 6d 70 61 72 65 45 6e |------.C|ompareEn|
|00003300| 75 6d 65 72 61 74 69 6f | 6e 20 54 4f 62 6a 65 63 |umeratio|n TObjec|
|00003310| 74 52 65 63 6f 72 64 43 | 6f 6d 70 61 72 69 73 6f |tRecordC|ompariso|
|00003320| 6e 4f 62 6a 65 63 74 3a | 3a 54 65 73 74 4f 62 6a |nObject:|:TestObj|
|00003330| 65 63 74 28 54 54 72 61 | 6e 73 61 63 74 69 6f 6e |ect(TTra|nsaction|
|00003340| 2a 20 74 2c 20 41 43 6f | 6e 73 74 3c 54 44 42 52 |* t, ACo|nst<TDBR|
|00003350| 65 63 6f 72 64 3e 20 74 | 65 73 74 4f 62 6a 65 63 |ecord> t|estObjec|
|00003360| 74 29 0d 7b 0d 09 43 6f | 6d 70 61 72 65 45 6e 75 |t).{..Co|mpareEnu|
|00003370| 6d 65 72 61 74 69 6f 6e | 20 74 65 73 74 52 65 73 |meration| testRes|
|00003380| 75 6c 74 3b 0d 0d 09 41 | 43 6f 6e 73 74 3c 54 44 |ult;...A|Const<TD|
|00003390| 42 50 72 6f 70 65 72 74 | 79 3e 20 6e 61 6d 65 43 |BPropert|y> nameC|
|000033a0| 75 72 73 6f 72 20 3d 20 | 74 65 73 74 4f 62 6a 65 |ursor = |testObje|
|000033b0| 63 74 2d 3e 44 42 45 6c | 65 6d 65 6e 74 43 75 72 |ct->DBEl|ementCur|
|000033c0| 73 6f 72 28 29 2d 3e 47 | 65 74 50 72 6f 70 65 72 |sor()->G|etProper|
|000033d0| 74 79 52 65 63 6f 72 64 | 28 74 2c 20 70 4e 61 6d |tyRecord|(t, pNam|
|000033e0| 65 29 3b 0d 09 69 66 28 | 6e 61 6d 65 43 75 72 73 |e);..if(|nameCurs|
|000033f0| 6f 72 2e 45 78 69 73 74 | 73 28 29 29 0d 09 7b 0d |or.Exist|s())..{.|
|00003400| 09 09 2f 2f 0d 09 09 2f | 2f 20 54 68 65 20 72 65 |..//.../|/ The re|
|00003410| 6c 61 74 69 6f 6e 73 68 | 69 70 20 77 65 20 77 61 |lationsh|ip we wa|
|00003420| 6e 74 20 74 6f 20 74 65 | 73 74 20 66 6f 72 20 69 |nt to te|st for i|
|00003430| 73 20 73 65 61 72 63 68 | 20 6b 65 79 20 77 69 74 |s search| key wit|
|00003440| 68 20 74 68 65 20 6e 61 | 6d 65 20 63 75 72 73 6f |h the na|me curso|
|00003450| 72 2c 0d 09 09 2f 2f 20 | 62 75 74 20 77 65 20 6d |r,...// |but we m|
|00003460| 75 73 74 20 64 6f 20 74 | 68 65 20 74 65 73 74 20 |ust do t|he test |
|00003470| 69 6e 20 74 68 65 20 72 | 65 76 65 72 73 65 20 6f |in the r|everse o|
|00003480| 72 64 65 72 20 28 6e 61 | 6d 65 20 63 75 72 73 6f |rder (na|me curso|
|00003490| 72 20 77 69 74 68 20 73 | 65 61 72 63 68 20 6b 65 |r with s|earch ke|
|000034a0| 79 29 0d 09 09 2f 2f 20 | 62 65 63 61 75 73 65 20 |y)...// |because |
|000034b0| 74 68 65 20 64 61 74 61 | 20 72 65 66 65 72 65 6e |the data| referen|
|000034c0| 63 65 20 66 6f 72 20 74 | 68 65 20 6e 61 6d 65 20 |ce for t|he name |
|000034d0| 63 75 72 73 6f 72 20 69 | 73 20 75 6e 61 76 61 69 |cursor i|s unavai|
|000034e0| 6c 61 62 6c 65 20 74 6f | 20 75 73 20 28 70 72 69 |lable to| us (pri|
|000034f0| 76 61 74 65 29 2e 0d 09 | 09 2f 2f 20 54 68 65 72 |vate)...|.// Ther|
|00003500| 65 66 6f 72 65 2c 20 77 | 65 20 64 6f 20 74 68 65 |efore, w|e do the|
|00003510| 20 74 65 73 74 20 77 65 | 20 63 61 6e 20 61 6e 64 | test we| can and|
|00003520| 20 74 68 65 6e 20 6e 65 | 67 61 74 65 20 69 74 2e | then ne|gate it.|
|00003530| 0d 09 09 2f 2f 0d 09 09 | 74 65 73 74 52 65 73 75 |...//...|testResu|
|00003540| 6c 74 20 3d 20 28 43 6f | 6d 70 61 72 65 45 6e 75 |lt = (Co|mpareEnu|
|00003550| 6d 65 72 61 74 69 6f 6e | 29 28 2d 28 28 69 6e 74 |meration|)(-((int|
|00003560| 29 6e 61 6d 65 43 75 72 | 73 6f 72 2d 3e 43 6f 6d |)nameCur|sor->Com|
|00003570| 70 61 72 65 28 74 2c 20 | 66 53 65 61 72 63 68 4b |pare(t, |fSearchK|
|00003580| 65 79 29 29 29 3b 0d 09 | 7d 0d 09 2f 2f 0d 09 2f |ey)));..|}..//../|
|00003590| 2f 20 49 66 20 74 68 65 | 20 6e 61 6d 65 20 6f 66 |/ If the| name of|
|000035a0| 20 74 68 65 20 69 74 65 | 6d 20 69 73 20 65 6d 70 | the ite|m is emp|
|000035b0| 74 79 2c 20 74 68 65 6e | 20 69 74 20 69 73 20 65 |ty, then| it is e|
|000035c0| 71 75 61 6c 0d 09 2f 2f | 20 74 6f 20 74 68 65 20 |qual..//| to the |
|000035d0| 73 65 61 72 63 68 20 6b | 65 79 20 69 66 20 74 68 |search k|ey if th|
|000035e0| 65 20 73 65 61 72 63 68 | 20 6b 65 79 20 69 73 20 |e search| key is |
|000035f0| 65 6d 70 74 79 2c 20 61 | 6e 64 0d 09 2f 2f 20 69 |empty, a|nd..// i|
|00003600| 74 20 69 73 20 6c 65 73 | 73 20 74 68 61 6e 20 74 |t is les|s than t|
|00003610| 68 65 20 73 65 61 72 63 | 68 20 6b 65 79 20 69 66 |he searc|h key if|
|00003620| 20 74 68 65 20 73 65 61 | 72 63 68 20 6b 65 79 20 | the sea|rch key |
|00003630| 68 61 73 0d 09 2f 2f 20 | 61 6e 79 20 64 61 74 61 |has..// |any data|
|00003640| 2e 0d 09 2f 2f 0d 09 65 | 6c 73 65 0d 09 09 74 65 |...//..e|lse...te|
|00003650| 73 74 52 65 73 75 6c 74 | 20 3d 20 66 53 65 61 72 |stResult| = fSear|
|00003660| 63 68 4b 65 79 2e 44 61 | 74 61 4c 65 6e 67 74 68 |chKey.Da|taLength|
|00003670| 28 29 20 3d 3d 20 30 20 | 3f 20 6b 4f 62 6a 65 63 |() == 0 |? kObjec|
|00003680| 74 4b 65 79 73 45 71 75 | 61 6c 20 3a 20 6b 53 65 |tKeysEqu|al : kSe|
|00003690| 63 6f 6e 64 4f 62 6a 65 | 63 74 43 6f 6d 65 73 42 |condObje|ctComesB|
|000036a0| 65 66 6f 72 65 3b 0d 09 | 09 2f 2f 20 74 65 73 74 |efore;..|.// test|
|000036b0| 52 65 73 75 6c 74 20 3d | 20 66 53 65 61 72 63 68 |Result =| fSearch|
|000036c0| 4b 65 79 2e 43 6f 6d 70 | 61 72 65 28 54 43 6f 6e |Key.Comp|are(TCon|
|000036d0| 73 74 44 61 74 61 52 65 | 66 65 72 65 6e 63 65 28 |stDataRe|ference(|
|000036e0| 27 54 45 58 54 27 2c 20 | 30 2c 20 28 50 74 72 29 |'TEXT', |0, (Ptr)|
|000036f0| 26 66 53 65 61 72 63 68 | 4b 65 79 29 29 3b 0d 09 |&fSearch|Key));..|
|00003700| 09 0d 09 72 65 74 75 72 | 6e 20 74 65 73 74 52 65 |...retur|n testRe|
|00003710| 73 75 6c 74 3b 0d 7d 20 | 2f 2f 20 54 4f 62 6a 65 |sult;.} |// TObje|
|00003720| 63 74 52 65 63 6f 72 64 | 43 6f 6d 70 61 72 69 73 |ctRecord|Comparis|
|00003730| 6f 6e 4f 62 6a 65 63 74 | 3a 3a 54 65 73 74 4f 62 |onObject|::TestOb|
|00003740| 6a 65 63 74 0d 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |ject..//|--------|
|00003750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003760| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003790| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 2f 2f 20 41 43 6f 6e |--------|.// ACon|
|000037a0| 73 74 3c 54 44 42 45 6c | 65 6d 65 6e 74 3e 3a 3a |st<TDBEl|ement>::|
|000037b0| 41 64 64 52 65 66 65 72 | 65 6e 63 65 0d 2f 2f 2d |AddRefer|ence.//-|
|000037c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00003810| 76 6f 69 64 20 41 43 6f | 6e 73 74 3c 54 44 42 45 |void ACo|nst<TDBE|
|00003820| 6c 65 6d 65 6e 74 3e 3a | 3a 41 64 64 52 65 66 65 |lement>:|:AddRefe|
|00003830| 72 65 6e 63 65 28 29 20 | 63 6f 6e 73 74 0d 7b 0d |rence() |const.{.|
|00003840| 09 69 66 28 66 52 65 63 | 6f 72 64 20 21 3d 20 6e |.if(fRec|ord != n|
|00003850| 69 6c 29 0d 09 09 66 52 | 65 63 6f 72 64 2d 3e 41 |il)...fR|ecord->A|
|00003860| 64 64 52 65 66 65 72 65 | 6e 63 65 28 29 3b 0d 7d |ddRefere|nce();.}|
|00003870| 20 2f 2f 20 41 43 6f 6e | 73 74 3c 54 44 42 45 6c | // ACon|st<TDBEl|
|00003880| 65 6d 65 6e 74 3e 3a 3a | 41 64 64 52 65 66 65 72 |ement>::|AddRefer|
|00003890| 65 6e 63 65 0d 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |ence..//|--------|
|000038a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038e0| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 2f 2f 20 41 43 6f 6e |--------|.// ACon|
|000038f0| 73 74 3c 54 44 42 45 6c | 65 6d 65 6e 74 3e 3a 3a |st<TDBEl|ement>::|
|00003900| 52 65 6d 6f 76 65 52 65 | 66 65 72 65 6e 63 65 0d |RemoveRe|ference.|
|00003910| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00003920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003950| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003960| 2d 2d 0d 76 6f 69 64 20 | 41 43 6f 6e 73 74 3c 54 |--.void |AConst<T|
|00003970| 44 42 45 6c 65 6d 65 6e | 74 3e 3a 3a 52 65 6d 6f |DBElemen|t>::Remo|
|00003980| 76 65 52 65 66 65 72 65 | 6e 63 65 28 29 20 63 6f |veRefere|nce() co|
|00003990| 6e 73 74 0d 7b 0d 09 69 | 66 28 66 52 65 63 6f 72 |nst.{..i|f(fRecor|
|000039a0| 64 20 21 3d 20 6e 69 6c | 29 0d 09 09 66 52 65 63 |d != nil|)...fRec|
|000039b0| 6f 72 64 2d 3e 52 65 6d | 6f 76 65 52 65 66 65 72 |ord->Rem|oveRefer|
|000039c0| 65 6e 63 65 28 29 3b 0d | 7d 20 2f 2f 20 41 43 6f |ence();.|} // ACo|
|000039d0| 6e 73 74 3c 54 44 42 45 | 6c 65 6d 65 6e 74 3e 3a |nst<TDBE|lement>:|
|000039e0| 3a 52 65 6d 6f 76 65 52 | 65 66 65 72 65 6e 63 65 |:RemoveR|eference|
|000039f0| 0d 0d 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..//----|--------|
|00003a00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a40| 2d 2d 2d 2d 0d 2f 2f 20 | 41 6e 55 70 64 61 74 65 |----.// |AnUpdate|
|00003a50| 3c 54 44 42 45 6c 65 6d | 65 6e 74 3e 3a 3a 41 64 |<TDBElem|ent>::Ad|
|00003a60| 64 52 65 66 65 72 65 6e | 63 65 0d 2f 2f 2d 2d 2d |dReferen|ce.//---|
|00003a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 76 6f |--------|-----.vo|
|00003ac0| 69 64 20 41 6e 55 70 64 | 61 74 65 3c 54 44 42 45 |id AnUpd|ate<TDBE|
|00003ad0| 6c 65 6d 65 6e 74 3e 3a | 3a 41 64 64 52 65 66 65 |lement>:|:AddRefe|
|00003ae0| 72 65 6e 63 65 28 29 20 | 63 6f 6e 73 74 0d 7b 0d |rence() |const.{.|
|00003af0| 09 69 66 28 66 52 65 63 | 6f 72 64 20 21 3d 20 6e |.if(fRec|ord != n|
|00003b00| 69 6c 29 0d 09 09 66 52 | 65 63 6f 72 64 2d 3e 41 |il)...fR|ecord->A|
|00003b10| 64 64 52 65 66 65 72 65 | 6e 63 65 28 29 3b 0d 7d |ddRefere|nce();.}|
|00003b20| 20 2f 2f 20 41 6e 55 70 | 64 61 74 65 3c 54 44 42 | // AnUp|date<TDB|
|00003b30| 45 6c 65 6d 65 6e 74 3e | 3a 3a 41 64 64 52 65 66 |Element>|::AddRef|
|00003b40| 65 72 65 6e 63 65 0d 0d | 2f 2f 2d 2d 2d 2d 2d 2d |erence..|//------|
|00003b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 41 6e |--------|--.// An|
|00003ba0| 55 70 64 61 74 65 3c 54 | 44 42 45 6c 65 6d 65 6e |Update<T|DBElemen|
|00003bb0| 74 3e 3a 3a 52 65 6d 6f | 76 65 52 65 66 65 72 65 |t>::Remo|veRefere|
|00003bc0| 6e 63 65 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |nce.//--|--------|
|00003bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003be0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003bf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003c00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003c10| 2d 2d 2d 2d 2d 2d 0d 76 | 6f 69 64 20 41 6e 55 70 |------.v|oid AnUp|
|00003c20| 64 61 74 65 3c 54 44 42 | 45 6c 65 6d 65 6e 74 3e |date<TDB|Element>|
|00003c30| 3a 3a 52 65 6d 6f 76 65 | 52 65 66 65 72 65 6e 63 |::Remove|Referenc|
|00003c40| 65 28 29 20 63 6f 6e 73 | 74 0d 7b 0d 09 69 66 28 |e() cons|t.{..if(|
|00003c50| 66 52 65 63 6f 72 64 20 | 21 3d 20 6e 69 6c 29 0d |fRecord |!= nil).|
|00003c60| 09 09 66 52 65 63 6f 72 | 64 2d 3e 52 65 6d 6f 76 |..fRecor|d->Remov|
|00003c70| 65 52 65 66 65 72 65 6e | 63 65 28 29 3b 0d 7d 20 |eReferen|ce();.} |
|00003c80| 2f 2f 20 41 6e 55 70 64 | 61 74 65 3c 54 44 42 45 |// AnUpd|ate<TDBE|
|00003c90| 6c 65 6d 65 6e 74 3e 3a | 3a 52 65 6d 6f 76 65 52 |lement>:|:RemoveR|
|00003ca0| 65 66 65 72 65 6e 63 65 | 0d 00 00 00 00 00 00 00 |eference|........|
|00003cb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003cc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003cd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ce0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003cf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d00| 00 00 01 00 00 00 01 54 | 00 00 00 54 00 00 00 46 |.......T|...T...F|
|00003d10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003d30| 0c 44 42 45 6c 65 6d 65 | 6e 74 2e 63 70 5e 02 00 |.DBEleme|nt.cp^..|
|00003d40| 00 00 54 45 58 54 4d 4d | 43 43 01 00 00 a0 00 00 |..TEXTMM|CC......|
|00003d50| 00 00 54 45 58 54 4d 4d | 43 43 01 00 00 a0 00 00 |..TEXTMM|CC......|
|00003d60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d70| 00 00 ac ba c0 85 00 00 | 3c 29 00 00 01 9a 2d 2d |........|<)....--|
|00003d80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 76 6f 69 |--------|----.voi|
|00003d90| 64 20 54 44 42 52 65 63 | 6f 72 64 55 70 64 61 74 |d TDBRec|ordUpdat|
|00003da0| 65 50 6f 69 6e 74 65 72 | 3a 3a 53 65 74 50 61 72 |ePointer|::SetPar|
|00003db0| 65 6e 74 53 69 62 6c 69 | 6e 67 28 54 41 62 73 74 |entSibli|ng(TAbst|
|00003dc0| 72 61 63 74 44 42 43 75 | 72 73 6f 72 2a 20 63 75 |ractDBCu|rsor* cu|
|00003dd0| 72 73 6f 72 29 0d 7b 0d | 09 74 68 69 73 2d 3e 41 |rsor).{.|.this->A|
|00003de0| 62 73 74 72 61 63 74 44 | 42 43 75 72 73 6f 72 28 |bstractD|BCursor(|
|00003df0| 29 2d 3e 53 65 74 50 61 | 72 65 6e 74 53 69 62 6c |)->SetPa|rentSibl|
|00003e00| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....|
|00003e10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e20| 00 00 00 00 00 00 00 03 | 00 04 00 3f 00 09 01 d0 |........|...?....|
|00003e30| 02 68 00 3f 00 09 01 d0 | 02 68 ac aa e4 34 00 00 |.h.?....|.h...4..|
|00003e40| 00 fd 00 00 00 fd 00 00 | 00 00 01 00 00 00 00 04 |........|........|
|00003e50| 00 01 00 01 00 00 01 00 | 00 00 01 54 00 00 00 54 |........|...T...T|
|00003e60| 00 00 00 46 00 dc bc 88 | 15 4e 00 00 00 1c 00 46 |...F....|.N.....F|
|00003e70| 00 01 4d 50 53 52 00 00 | 00 12 4d 57 42 42 00 00 |..MPSR..|..MWBB..|
|00003e80| 00 1e 03 ed ff ff 00 00 | 00 00 00 00 00 00 03 f0 |........|........|
|00003e90| ff ff 00 00 00 4c 00 00 | 00 00 00 00 00 00 00 00 |.....L..|........|
|00003ea0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003eb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ec0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ed0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ef0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+